为什么在函数之外指针数据没有得到更新

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 作为指针按值传递。所以将这个指针设置为任何东西只会在函数中局部改变指针。

如果要影响传入的原始指针,请按引用传递指针。