为什么在函数之外指针数据没有得到更新
why outside the funtion the pointer data is not getting updated
我是 c++ 的新手,我正在尝试使用一个函数更新类似的变量
我有一个变量
IComponent* m_component1;
IComponent* m_component2;
IComponent* m_component3;
然后我设置函数 IComponent is 和 interface
void SetComponent1(IComponent* comp) { SetComponent(comp, m_component1); }
void SetComponent2(IComponent* comp) { SetComponent(comp, m_component2); }
void SetComponent3(IComponent* comp) { SetComponent(comp, m_component3); }
void SetComponent(IComponent* newComp , IComponent* oldComp)
{
if (oldComp)
{
oldComp->Clean();
}
newComp->Load();
oldComp = newComp;
}
但我的 m_component1/2/3 仍然说它是 null
这是因为您将 oldComp
作为指针按值传递。所以将这个指针设置为任何东西只会在函数中局部改变指针。
如果要影响传入的原始指针,请按引用传递指针。
我是 c++ 的新手,我正在尝试使用一个函数更新类似的变量
我有一个变量
IComponent* m_component1;
IComponent* m_component2;
IComponent* m_component3;
然后我设置函数 IComponent is 和 interface
void SetComponent1(IComponent* comp) { SetComponent(comp, m_component1); }
void SetComponent2(IComponent* comp) { SetComponent(comp, m_component2); }
void SetComponent3(IComponent* comp) { SetComponent(comp, m_component3); }
void SetComponent(IComponent* newComp , IComponent* oldComp)
{
if (oldComp)
{
oldComp->Clean();
}
newComp->Load();
oldComp = newComp;
}
但我的 m_component1/2/3 仍然说它是 null
这是因为您将 oldComp
作为指针按值传递。所以将这个指针设置为任何东西只会在函数中局部改变指针。
如果要影响传入的原始指针,请按引用传递指针。