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]를 제공하십시오. –