0
私は外部関数の中でクラスの変数を設定しようとしていました。私は、これが本当であれば、関数が終了した後にクラスを消去することに終わったと思います。その周りには何がありますか?関数内にオブジェクト変数を設定する
Book bookArray[lineIndex];
bookArray[0].setTitle("Here!");
//function in loop called in main
for (int i = 0; i<lineIndex; i++)
{
arrayToBook(tempArray, bookArray[i]);
}
cout << bookArray[0].getTitle() << endl;
//returns empty space
//function definition
void arrayToBook(string* tempArray, Book bookIn)
{
bookIn.setTitle(tempArray[0]);
bookIn.setAuthor(tempArray[1]);
//other sets
}
'bookIn'を参照のように渡してみましょう。' void arrayToBook(string * tempArray、Book&bookIn) ' –
関数の実行終了時に、オブジェクトは値を渡すと破棄されます、あなたのように( 'Book bookIn'); copy( 'bookArray [i]') – max66
あなたは値で 'Book'を渡しているので、コピーされ、すべてがコピーされます。 (元のオブジェクトではなく)コピーに対して変更が行われており、そのコピーは関数の終了後に破棄されます。参照渡しを検討してください。また、表示しているコードスニペットが構文上正しくないので、[mcve]を指定してください。 –