私はC++のクラスとオブジェクトについて学び、それを正しく理解しているかどうかをテストするために次のコードを試しました。
#include <iostream>
using namespace std;
class class1
{
public:
void write(int x)
{
dataObject.var = x;
}
};
class class2
{
public:
void read()
{
std::cout << dataObject.var;
}
};
class data
{
public:
int var;
data()
{
var = 1;
}
};
int main()
{
data dataObject;
class1 object1;
class2 object2;
object2.read(data dataObject);
object1.write(2);
object2.read(data dataObject);
return 0;
}
これは、2つのオブジェクトを使用して、3つ目のメンバーを変更および使用するためのものでしたが、次のエラーが発生します。
In member function 'void class1::write(int)':
line 10: error: 'dataObject' was not declared in this scope
In member function 'void class2::read()':
line 14: error: 'dataObject' was not declared in this scope
In function 'int main()':
line 40 + 42: error: expected primary-expression before 'dataObject'
私がどこで間違っているのか考えていますか?前もって感謝します。
編集:すべての提案をありがとう。私のコードは次のとおりです。
#include <iostream>
using namespace std;
class class1
{
public:
void write(data &dataObject, int x)
{
dataObject.var = x;
}
};
class class2
{
public:
void read(data dataObject)
{
std::cout << dataObject.var << endl;
}
};
class data
{
public:
int var;
data()
{
var = 1;
}
};
int main()
{
data dataObject;
class1 object1;
class2 object2;
object2.read(dataObject);
object1.write(dataObject,2);
object2.read(dataObject);
return 0;
}
そして、私は今エラーを受け取ります:
8エラー:「データ」が宣言されていません
10エラー:非クラスタイプの「int」である「dataObject」のメンバー「var」の要求
18エラー:「データ」が宣言されていません
20エラー:非クラスタイプの「int」である「dataObject」のメンバー「var」の要求
40エラー:「dataObject」はこのスコープで宣言されていません