-2

これが機能しない理由はわかっていますが、どうすればこれを機能させることができますか? わかりましたので、たくさんの仮想関数と1つの非仮想関数を持つ親クラスがあります

元:

class Parent
{
private: 
    int variable;
public:
    virtual void firstfunction(); 
    virtual void secondfunction(); 
    void nonvirtualfunction();
};

Parent::nonvirtualfunction()
{
    variable = 5;
}

親クラスから継承する子クラスがあります

class Child : public Parent
{
    void firstfunction();
    void secondfunction();
}

Child::secondfunction()
{
    Parent::nonvirtualfunction();
}

子クラス内で非仮想関数を呼び出しても、親クラス内の値は変更されません。子クラス内の親クラスの変数を変更できるようにするにはどうすればよいですか?

4

1 に答える 1

3

サンプルコードは動作します: http://ideone.com/zRvp93

あなたの例の唯一の大きな問題は、Childのメンバー関数がプライベートでありParent::nonvirtualfunctionChild::secondfunction戻り値の型がないことです。

于 2013-09-11T17:53:39.297 に答える