friend 클래스
2019. 8. 12. 14:12ㆍPL/C++
friend는 클래스간 상호작용을 위해서 사용된다. 객체지향의 encapsulation 정의에 어긋나서 되도록 사용은 지양하지만 연산자 오버로딩에서 자주 쓰이곤 한다
#include <iostream>
using namespace std;
class Time {
friend class Date;
private:
int hour, min, sec;
public:
void setCurrentTime() {
time_t currentTime = time(NULL);
struct tm *p = localtime(¤tTime);
hour = p->tm_hour;
min = p->tm_min;
sec = p->tm_sec;
}
};
class Date {
private:
int year, month, day;
public:
Date(int year, int month, int day) : year(year), month(month), day(day) {}
void show(const Time &t) {
cout << year << "년 " << month << "월 " << day << "일\n";
cout << t.hour << ":" << t.min << ":" << t.sec << '\n';
}
};
int main(void) {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
Time t;
t.setCurrentTime();
Date d(2019, 8, 12);
d.show(t);
return 0;
}
friend 클래스와 다르게 friend 함수는, 함수 내부에서만 클래스의 모든 변수들을 사용할 수 있다
'PL > C++' 카테고리의 다른 글
static 정적 멤버와 상수 멤버 (0) | 2019.08.12 |
---|---|
2차원 배열에서 &a[5]와 a[5]의 차이 (0) | 2019.08.12 |
상속에서의 생성자와 소멸자 (0) | 2019.08.12 |
C++ 클래스 변수 초기화와 this 포인터 (0) | 2019.08.12 |
string에 한글 입력이 들어가지 않는 이유 (0) | 2019.08.11 |