基本クラスBoard_S
と、基本クラス10
を継承する他のクラスがありBoard_S
ます。
特定のサブクラスからもう 1 つの関数を呼び出す必要があるクラスとその関数をBoard_S
呼び出すオブジェクトがあります。Board_S
エラーが発生しています: Class does not name a type
;
方法 このメイン クラスからサブクラス関数を呼び出します。
助けてください
基本クラスBoard_S
と、基本クラス10
を継承する他のクラスがありBoard_S
ます。
特定のサブクラスからもう 1 つの関数を呼び出す必要があるクラスとその関数をBoard_S
呼び出すオブジェクトがあります。Board_S
エラーが発生しています: Class does not name a type
;
方法 このメイン クラスからサブクラス関数を呼び出します。
助けてください
これを正しく行う唯一の方法は、基本クラスで仮想関数を宣言し、それを派生クラスに実装することです。
class A
{
public:
A() {}
virtual ~A() {}
virtual void func() {}
void CallFunc() { func(); }
};
class B : public A
{
public:
B() {}
virtual ~B() {}
virtual void func() {} // overrides it
};
int main()
{
A a;
A* pB = new B;
a.CallFunc(); // will call the base class version of func()
pB->CallFunc(); // will call the derived class version of func()
delete pB;
}
派生クラスで関数をオーバーライドする必要がない場合 (および関数が純粋仮想関数として宣言されていない場合) は、オーバーライドしません。