c++非类作用域的替换.X = X;

C++ non class scope replacement for this.x = x;

本文关键字:替换 作用域 c++      更新时间:2023-10-16

在c++中我可以在类中这样做:

class MyClass {
    public:
        int number;
        void SetNumber(int number);
};
void MyClass::SetNumber(int number)
{
    this->number = number;
}

但是这个呢:

int number;
void SetNumber(int number)
{
    //What do I do here?
}

这个问题是因为作用域没有"This",类只有"This"。什么好主意吗?

听起来你在找

::number = number;

假设top number是在全局作用域声明的。如果不是,我们需要更多的上下文

我认为最明显的解决方案是不要将函数的参数命名为全局变量。将number更改为aNumber("a"表示"argument")或将number更改为gNumber("g"表示"global")。或者让num, n, nr, x, kerflunknumber以外的任何参数。[在我看来,这也适用于成员函数]。