このコードは正常に動作します。 setter関数を呼び出す代わりにコンストラクタを使用し、オブジェクトのコンストラクタを複数回呼び出しています。 1つのオブジェクトに対してコンストラクタが1回しか呼び出されないのですか?私のようにするのは間違いありませんか?オブジェクトのコンストラクタを複数回呼び出す
ifstream myfile;
myfile.open("phones.txt");
DirectoryEntry *TelephoneDirectory = new DirectoryEntry[size]; // default constructor
for (int i = 0; i < size; i++)
{
TelephoneDirectory[i] = DirectoryEntry(myfile); // parameterized constructor
}
myfile.close();
他にどのようなクラスのインスタンスを複数作成しますか?各呼び出しは_new_オブジェクトを作成します。 – ForceBru
"と私はオブジェクトのコンストラクタを複数回呼び出すことになります。"あなたはそうではありません、それらは異なるオブジェクトです。 – tkausl
'TelephoneDirectory [i] = DirectoryEntry(myfile);' - 一時的な 'DirectoryEntry'を構成します。それを配列要素に代入(コピー)します。一時的に破壊します。 –