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
, [И это действительно относится к функциям-членам, по моему мнению].