C++ замена класса вне класса для this.x = x;

В 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?
}

Эта проблема заключается в том, что для области не существует слова "это", а только для классов "это". Есть идеи?

2 ответа

Похоже, вы ищете

::number = number;

Это предполагает, что верх number объявлен в глобальном масштабе. Если это не так, нам нужно больше контекста.

Я думаю, что самое очевидное решение - НЕ называть аргумент функции тем же, что и глобальная переменная. Изменить либо number в aNumber ("a" для "аргумента") или изменить number в gNumber ("г" для "глобальный"). Или сделайте аргумент num, n, nr, x, kerflunk или что-нибудь еще, кроме number, [И это действительно относится к функциям-членам, по моему мнению].

Другие вопросы по тегам