상세 컨텐츠

본문 제목

이니셜라이져가 더좋은 이유

C++/클래스

by nowpassion 2008. 5. 5. 13:53

본문

- 클래스 하나가 초기화 될 경우, 나머지 상속관계도 물리기때문에 최대한 외부에서
   해당 데이터만 조작하는 것이 좋다.
 
예제)
 1번
    Line(int _x = 0, int _y = 0) : Point(_x, _y){
        length = _x + _y;
        cout << "Line() 호출" << endl;
    }
   
2번
    Line(int _x = 0, int _y = 0){
        cout << "Line() 호출" << endl;
        x_ptr = _x;
        y_ptr = _y;
    }

상속받은 클래스의 멤버를 초기화 하는 방법이 2가지 있다고 보았을때 2번 방법보다 1번방법이 더 유지보수에서 더 좋은 방법이라고 볼 수 있다. 실제 2번의 예에서 상속받은 멤버(x_ptr, y_ptr)을 직접제어하기 때문에 클래스가 변경되는 경우 일일히 수정해줘야한다. 하지만 1번의 경우 멤버이니셜라이져를 통해 멤버를 초기화 하기 때문에 해당클래스가 변경이 되더라도 영향이 없다고 볼 수있다.

'C++ > 클래스' 카테고리의 다른 글

임시객체란?  (0) 2008.05.05
클래스 포인터의 할당 범위  (0) 2008.05.05
Protected란?  (0) 2008.05.05
생성자, 소멸자 호출 순서  (0) 2008.05.05
Static with Class  (0) 2008.05.01

관련글 더보기