class A
{
public:
virtual void
doSomething(void)
{}
void
doStuff(void)
{
doSomething();
}
};
class B : public A
{
public:
void
doSomething(void)
{
// do some stuff here
}
};
B * b = new B;
b->doStuff();
내게 세그먼트 오류가 발생합니다. 내가 도대체 뭘 잘못하고있는 겁니까? 그것은 내 생각에 잘 작동해야합니다!기본 클래스 메서드에서 하위 클래스 가상 메서드 호출
B에는 doStuff 멤버가 없으므로 A :: doStuff가 호출됩니다. –
그는 polymorphic'doSomething'을 구현하는 non-polymorphic'doStuff'를 호출합니다. – ChrisW
'B' 클래스에서 선언되고'A' 클래스에서 호출 된'doStuff()'를 호출하려고합니다. – kjagiello