2016-09-20 4 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

'Fct'に引数を渡さないように' void'を使用しないでください。完全には不要です。 – 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

Ok - 私はエラーを解決しようとしました - –

+0

#include using namespace std; クラス2 { public: int toReturn; 2つ( ){ toReturn = 0; } int returnValue() { return toReturn; } }; クラスワン { 公開: 2つのfoo; }; int main() { バー1個; int toPrint = bar.foo.returnValue(); cout << toPrint << endl; } –

関連する問題