- 느슨한 관계가 좋다. 연결하고 끊어내기가 수월하기 때문이다.
- 포인터의 경우 실제 has-a관계에 있는 클래스는 Heap에 저장되므로 부담이 덜하다.
ex)/*28.cpp*/
#include <iostream>
using std::endl;
using std::cout;
class Clock
{
int hour;
int min;
int sec;
public:
Clock(int _hour = 0, int _min = 0, int _sec = 0){
hour = _hour;
min = _min;
sec = _sec;
}
void tick(){
cout << hour << " : " << min << " : " << sec << endl;
}
~Clock(){
cout << "~Clock() 호출" << endl;
}
};
class Sun
{
char* name;
int num;
Clock * clk;
public:
Sun(char* _name = "", int _num = 0 ){
name = _name;
num = _num;
clk->tick();
}
~Sun(){
cout << "~sun() 호출" << endl;
}
};
int main(){
Sun sun("ace", 0);
return 0;
}