0

基本クラスBoard_Sと、基本クラス10を継承する他のクラスがありBoard_Sます。

特定のサブクラスからもう 1 つの関数を呼び出す必要があるクラスとその関数をBoard_S呼び出すオブジェクトがあります。Board_S

エラーが発生しています: Class does not name a type;

方法 このメイン クラスからサブクラス関数を呼び出します。

助けてください

4

1 に答える 1

0

これを正しく行う唯一の方法は、基本クラスで仮想関数を宣言し、それを派生クラスに実装することです。

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;
}

派生クラスで関数をオーバーライドする必要がない場合 (および関数が純粋仮想関数として宣言されていない場合) は、オーバーライドしません。

于 2013-08-15T18:35:31.757 に答える