2016-09-20 87 views
-3

我是新來的C++編程,我需要你的幫助:C++我要像做Class1.Class2.Fct()

比方說,我有一個類 - Class1的。是否有可能有(至少)一個函數返回(例如)一個整數的另一個類(Class2)?下面是我想才達到一個例子:

std::cout << "I did it: " << Class1.Class2.ReturnINTEGER() << std::endl; 

我需要的代碼以與GNU G ++編譯器兼容。謝謝 :)。

+2

我認爲你需要一個[本好書(http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list )讓你開始如何做到這一點。 – Rakete1111

+2

您不會在'.'之前放置類名,而是將類型爲類的變量。 – Barmar

+1

'.'從類中的成員名稱中分離變量(或返回結構或類對象的其他表達式)。 – Barmar

回答

0

是的,它可以做到。讓我們剖析或重建。 首先得到Class1.Class2,我們需要有一個類成員Class2。而Class2需要有一個名爲Fct的成員。

這是一個實現:

struct Class2_Object 
{ 
    void Fct(void); 
}; 

struct Class1_Object 
{ 
    Class2_Object Class2; 
}; 

Class1_Object Class1; 
Class1.Class2.Fct(); 
+0

這一個幫助 - 非常感謝:)) –

+0

請不要使用'void'來指定不應該傳遞給'Fct'的參數,這是完全沒有必要的。 – Rakete1111

+0

@ Rakete1111:雖然在C++ *中是不必要的*,但它是允許的,並且可以從C語言中結轉。目前我正在用兩種語言進行編程,但在不同的項目上。 –

1
#include <iostream> 
using namespace std; 
class Two 
{ 
public: 
    int toReturn; 
    Two() 
    { 
     toReturn=0; 
    } 

    int returnValue() 
    { 
     return toReturn; 
    } 
}; 

class One 
{ 
public: 
    Two foo; 
}; 

int main() 
{ 
    One bar; 
    int toPrint=bar.foo.returnValue(); 
    cout << toPrint << endl; 
} 
+0

好吧 - 我試圖解決錯誤 - 在這裏: –

+0

#include using namespace std; 二級 { public: int toReturn; 兩個() { toReturn = 0; } int returnValue() { return toReturn; } }; class One { public: Two foo; }; int main() { One bar; int toPrint = bar.foo.returnValue(); cout << toPrint << endl; } –

相關問題