상세 컨텐츠

본문 제목

동적할당을 통한 has a관계

C++/상속

by nowpassion 2008. 5. 5. 14:04

본문

- 느슨한 관계가 좋다. 연결하고 끊어내기가 수월하기 때문이다.
- 포인터의 경우 실제  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;
}

'C++ > 상속' 카테고리의 다른 글

has-a 관계(복합관계)  (0) 2008.05.05
is a 관계  (0) 2008.05.05
상속의 방법  (0) 2008.05.05
상속에서의 이니셜라이져 역할  (0) 2008.05.01

관련글 더보기