c++非类作用域的替换.X = X;
C++ non class scope replacement for 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?
}
这个问题是因为作用域没有"This",类只有"This"。什么好主意吗?
听起来你在找
::number = number;
假设top number
是在全局作用域声明的。如果不是,我们需要更多的上下文
我认为最明显的解决方案是不要将函数的参数命名为全局变量。将number
更改为aNumber
("a"表示"argument")或将number
更改为gNumber
("g"表示"global")。或者让num
, n
, nr
, x
, kerflunk
或number
以外的任何参数。[在我看来,这也适用于成员函数]。
相关文章:
- 未在作用域中声明unordered_map
- 有没有一种方法可以在编译时获得作用域类名
- C++quit()函数中可能存在作用域问题
- 未在此作用域OpenCV3.4中声明cvSaveImage
- 全局作用域中函数指针的赋值
- 在类函数中初始化外部作用域变量
- 不同作用域中的静态变量和全局变量
- 是同一作用域的函数部分中的函数调用
- 未在此作用域中声明的函数和变量 (C++)
- 类作用域的类型别名"using":[何时]方法中的用法可以先于类型别名?
- 将作用域枚举转换为基础类型
- 表达式必须具有完整或无作用域的枚举图
- 在构造函数中输入对象时C++类成员作用域
- 无法让"std::enable_if"适用于无作用域枚举
- 为什么不能直接引用作用域枚举类成员,而不能为无作用域枚举生成类成员?
- 函数未在作用域中声明 / 如何结合使用 header.h、header.cpp 和 main.cpp?
- 错误:表达式必须具有算术、无作用域枚举或带有运算符重载的指针类型
- 用预处理器#define替换作用域标识符
- c++非类作用域的替换.X = X;
- c++新内存替换和作用域解析