- 클래스 하나가 초기화 될 경우, 나머지 상속관계도 물리기때문에 최대한 외부에서
해당 데이터만 조작하는 것이 좋다.
예제)
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번의 경우 멤버이니셜라이져를 통해 멤버를 초기화 하기 때문에 해당클래스가 변경이 되더라도 영향이 없다고 볼 수있다.
임시객체란? (0) | 2008.05.05 |
---|---|
클래스 포인터의 할당 범위 (0) | 2008.05.05 |
Protected란? (0) | 2008.05.05 |
생성자, 소멸자 호출 순서 (0) | 2008.05.05 |
Static with Class (0) | 2008.05.01 |