在函数内设置对象变量

时间:2017-04-20 17:50:50

标签: c++ function class c++11

我一直在尝试为外部函数中的类设置变量;我认为这最终会在函数退出后删除类,如果这是真的,它有什么方法呢?

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
}

1 个答案:

答案 0 :(得分:0)

作为评论中的状态,您应该通过(非常量)引用传递参数:

void arrayToBook(const string* tempArray, Book& bookIn)
{
    bookIn.setTitle(tempArray[0]);
    bookIn.setAuthor(tempArray[1]);
    //other sets
}

否则你只修改一份新的副本。