0

他のクラスの値を返すことができる C++ クラス関数を実行しようとしています。クラスAが最初に定義されている場合、コードは機能しますが、いじり回したくないコードが他にもあります。クラスAの何らかの前方宣言が必要だと思いました。

この作業を行うには、どのような事前宣言が必要ですか? 私のコードはすべて1つのファイルにあります。クラスを複数のファイルに適切に分割してそれらをプロジェクトに含めると、この問題は消えますか、それとも VC++ コンパイラに違いはありますか?

以下の準擬似コード。



    // forward declaration
    class A;

    // class deifinitions
    class B {
    private:
        int testvalue;
    public:
        void settestvalue(A &Aobj);
    }

    void B::settestvalue(A &Aobj) {
        testvalue = Aobj.settestvalue();
    }


    class A {
    private:
        int test = 10;
    public:
        int testvalue();
    };

    int A::testvalue() {
        return test;
    }


    // mainloop


    A Aobj;
    B Bobj;

    Bobj.settestvalue (Aobj);

4

1 に答える 1

0

A のクラス定義の後に B のメンバー関数の定義を配置するだけです。

于 2013-08-18T12:58:20.627 に答える