我正在处理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”指向了一些空的内存?
如果是这样,这种情况的公认标准/解决方案是什么?这似乎有点疯狂有按值传递的东西...
BankRecord
指针也将起作用。通过引用存储内容不是很好。但是,如果我没有记错的话,您的两个字符串和int不会丢失,因为它们存在于堆栈中并且不会被释放。但是bankRecord
仍然会丢失。