【发布时间】:2020-04-01 07:40:00
【问题描述】:
我开始掌握 C++ 中的引用,并且我有一个关于引用和范围的小查询,为此最好创建一个示例:
假设我在“BankDatabase.cpp”中有一个方法,它通过引用获取银行记录并将其添加到数据结构中(也通过引用)。
void AddRecord( BankRecord& bankRecord )
{
//Add record to data structure by reference
}
如果我运行这样的方法:
void TestAddRecord( BankDatabase& bankDatabase )
{
BankRecord bankRecord { "John", "Doe", 9999 }
bankDatabase.AddRecord( bankRecord );
}
在我看来,“bankRecord”超出了范围(就像它的两个字符串和 int 一样),因此在“TestAddRecord”方法结束时从内存中清除,让“bankDatabase”指向一些空内存?
如果是这样,对于这种情况,普遍接受的标准/解决方案是什么?必须按值传递东西似乎有点疯狂......
【问题讨论】:
标签: c++ pointers memory memory-management scope