남병철.레조 님이 쓰신 글 :
: 파생 클래스에서 구현한 기능이 적용되려면 부모 클래스에서는 virtual 키워드를 사용하여 가상함수로 만들어 주어야합니다.
: 그러면 기본적으로 자식 객체의 함수가 호출됩니다.
: 만일 부모객체의 함수 호출이 필요하다면 명시적으로 부모를 지정하고 호출합니다.
: ParentClass::Func(...);
:
질문이 잘못 전달됬네요..
저는 이것을 물어본 것입니다.
int main()
{
quad o1(10, 10), o2(15, 3), o3;
int x, y;
{
o3 = o1 + o2; // operator+()와 operator=()이 호출됨.
o3.get_xy(x, y);
o3.showq();
cout << "(o1+o2) X: " << x << ", Y: " << y << "\n\n";
}
{
o3 = o1 - o2; // operator-()와 operator=()이 호출됨
o3.get_xy(x, y);
o3.showq();
cout << "(o1-o2) X: " << x << ", Y: " << y << "\n\n";
}
{
o3 = o1; // operator=()이 호출됨 -> 의문점은 왜 coord 클래스의 operator=()이 실행될까요? 위의 두 문은 quad 클래스의 operator=()이 호출됬는데요.
o3.get_xy(x, y);
o3.showq();
cout << "(o3=o1) X: " << x << ", Y: " << y << '\n';
}
return 0;
}
제가 질문하는 것은 주석에서 설명한 대로 입니다.
도무지 이해가 되지 않네요. source file과 출력 화면을 올려드립니다.
다시 한번 답변 부탁드립니다.
|