私は次のようなコードを作成しています。それがエラーを生成し、コンストラクタでのコンストラクタの呼び出し
#include <iostream>
using namespace std;
class X
{
private:
int iX;
public:
X(int i=0) : iX(i) { cout <<"Constructing X.."<<endl; }
~X() { cout <<"Destructing X.."<<endl; }
int getIX() { return iX; }
};
class Y
{
private:
X x(3);
int jY;
public:
Y(int j = 0) : jY(j) { cout <<"Constructing Y.."<<endl; }
~Y() { cout <<"Destructing Y.."<<endl; }
void callGetX() { cout <<"iX is "<<(x.getIX())<<endl; }
};
int main()
{
Y yObj(1);
yObj.callGetX();
}
エラー:メンバ関数のボイドYで :: callGetX() 'X' 宣言されていない(最初にこの機能を使用する)
は、私が見逃しているものはありますか? 誰でもこのシナリオのコンストラクタコールメカニズムを教えていただけますか?
あなたはどのようなエラーを取得している:
は、代わりにこれを行いますか?これは完全に有効です: 'X x(5);'。これは、それは言うメンバ関数voidYで あなたの問題に関連していないが、 'の#include' '代わりの#include "のiostream"' –
mfontanini
別の問題のように思える。なぜあなたはエラーを生成するコードを投稿しないのですか? –
:: callGetX() X宣言されていない(最初にこの機能を使用する) –