【发布时间】:2018-02-23 21:46:02
【问题描述】:
我的班级有一个对象数组,称之为Foo。它在类中存储为Foo* m_Foos。假设它的值是 [0],保证,并且 Foo 有一个名为 IsSet 的属性,这只是一个布尔值。
void TryThis()
{
Foo returnValue;
GetValue(returnValue);
returnValue.IsSet = true;
if(m_Foo[0].IsSet != returnValue.IsSet)
{
// ERROR!!!!
}
}
void GetValue(Foo &container)
{
container = m_Foos[0];
}
谁能解释为什么 m_Foo[0] =/= returnValue?我的语法错误在哪里?
我希望 m_Foo[0] 与 returnValue 的引用相同,内存中的 Foo 相同。
【问题讨论】:
-
GetValue()将returnValue的值分配为等于m_Foos[0]的值。它不会导致returnValue成为对m_Foos[0]的引用。 -
我更新了问题以提供示例。代码现在有条件
-
不确定您还想如何改写它。我得到了答案,所以没关系。
标签: c++ pass-by-reference