class Base
{
public:
Base()
{
foo();
}
virtual void foo()
{
printf("Base foo\n");
}
};
class Derived : public Base
{
public:
Derived()
: Base()
{
}
virtual void foo()
{
printf("Derived foo\n");
}
};
new Derived(); 하면 Base foo 함수호출됨
자바에서하면 어떻게나오냐
생성자 호출 순서는 같은걸로암
ㅇㅇ Derived() 에서 Base() 생성자 호출되고 거기서 foo() 호출하면 자바에선 Derived::foo 호출되지 않냐?
저 밑에 글은 Base가 작성된 cpp 파일에서 Derived의 foo를 쓰고 싶은 거 아님?
불가능한 거 아닌가? 생각해보니 후렌드가 그냥 프라이빗 뚫는 게 끝이었던 거 같음;;;
아니면 Derived 객체를 가지고 있거나...
어쨌든 이거도 Base 생성자에서 foo 호출하잖슴
아 코드를 대충봤음 ㅈㅅ 근데 아마 base에 있는게 호출되지 않을까여
그거는 자식클래스가 부모 클래스의 함수를 호출한거고 저 분은 부모클래스에서 자식 클래스의 함수를 호출하고 싶으시데요
아니요 볼진님 Base() 안에서 다시 foo를 호출하는데 foo가 virtual함수이니 자식클래스의 함수가 호출될거라고 예상할수도 있잖아요 내가 저분글을 좀 제대로 못읽었을수도 있지만