2013-08-18 101 views
0

我試圖做一個可以返回其他類值的C++類函數。如果類A是首先定義的,但是我有更多的代碼不想破解,代碼將起作用。我想我需要一些A類的前向聲明。使用函數和聲明順序返回其他類變量

我需要什麼樣的前向聲明來完成這項工作?我所有的代碼都在一個文件中。如果我正確地將我的類拆分爲多個文件並將它們包含到項目中,或者它對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); 

+2

只需在類A的定義後面加上'void B :: settestvalue(A&Aobj)'*的定義即可。 – juanchopanza

+0

有一些其他的類,過了一段時間,排序將變得不可能。還是我誤解了? =) – John

+0

這是一個很好的暗示,你不應該在一個文件中包含所有內容。製作單獨的標題和實施文件。 – juanchopanza

回答

0

只是在A的類定義之後定義了B的成員函數。

+0

工程太棒了!簡單!謝謝! – John

相關問題