Class1 から Class3 の変数 1 と 2 に書き込もうとしています。
Class1 から Class2 の変数への書き込みに問題はありません。ただし、Class1 から Class3 変数に永続的に書き込むことはできないようです。割り当て後に read() メソッド内の cout が正しい値を出力するため、正しい値を受け取っていることがわかります。ただし、同じ cout を print() メソッドに貼り付けても、新しい値は出力されません。一時的に書き込まれているようです...
クラスおかしくてごめんなさい
class Class1
{
public:
Class1();
private:
Class2 *myClass2Array;
};
Class1::Class1()
{
myClass2Array = new Class2[size];
myClass2Array[i].getArray(myClass2Array[i].getCount()).read(string1, string2); // this line is probably a problem
}
したがって、Class1 のコンストラクターは、Class2 で宣言されている Class3 にある read() を呼び出そうとしています...
class Class2
{
public:
Class2();
int getCount();
Class3 getArray(int i) { return myClass3Array[i]; }
private:
Class3 *myClass3Array;
int count;
};
Class2::Class2()
{
count = 0;
myClass3Array = new Class3[8];
}
Class3 myClass3Array[8]; も試しました。forループでそれぞれを初期化します...これがClass3です
class Class3
{
string var1;
string var2;
public:
Class3();
void print();
void read(string, string);
};
Class3::Class3()
{
var1 = "";
var2 = "";
}
void Class3::print()
{
cout << var1 << " and " << var2 << endl; // will print old, initiated values
} // end function print()
void Class3::read(string string1, string string2)
{
var1 = string1;
var2 = string2;
cout << var1 << " " << var2 << endl; // will print new values
} // end function read()
私の問題は、配列を宣言した方法、または配列にアクセス (書き込み) しようとしている方法にあると思います。何か案は?