如何在声明当前命名空间时引用它?有没有像"self"/"this"这样的词?
How do I refer the current namespace while declaring it? Is there any word like "self"/"this"?
在这里,如果我重命名名称空间,我还必须记得查看其余的代码,并进行所有必要的更改。是否有像self
, this
或current
这样的词来指代当前的命名空间?
namespace myNamespace {
int myInt;
void myFunc() {
myNamespace::myInt = 66;
}
};
为什么要引用当前的名称空间?没有必要这样做,你可以很容易地写:
namespace myNamespace {
int myInt = 33;
void myFunc() {
myInt = 33;
}
};
无论在那里声明什么变量(例如全局myInt
),默认情况下都将使用此范围的变量。
但是,如果您想重命名,您可以使用IDE技术,如替换或重构。
不,没有,但如果你真的想做这样的事情,你可以假装。
namespace myNamespace {
namespace _ns = ::myNamespace;
int myInt;
void myFunc() {
_ns::myInt = 66;
}
}
如果你改变了myNamespace
,你只需要改变_ns
来匹配它
另外,命名空间后面的分号也是多余的。
问得好。不,没有这样的。
此外,要注意myNamespace::myInt
在嵌套名称空间的情况下甚至不是明确的(假设您遇到了namespace myNamespace { namespace myNamespace { … } }
的复杂情况)。为了安全起见,您需要使用完全限定的名称空间:
::myNamespace::myInt = 33;
其中前缀::
为全局命名空间
相关文章:
- 表示"accepting anything for this template argument" C++概念的通配符
- 为什么使用 "this" 指针调用派生成员函数?
- C++错误:"error: int aaa::bbb is protected within this context"
- 我可以将调用类的"this"传递给 lambda 函数吗?
- 创建具有 new in 函数和"this is nullptr"异常的对象
- 关于C++中具有多重继承"this"指针的说明
- 在noexcept 规范中是否允许使用"this"?
- 如何修复"error: ‘_1’ was not declared in this scope"?
- C++调用具有 *this 属性的单个帮助程序函数
- Doees the 'this' 指针参与虚函数的多态行为
- 在 c++ 中正确定义"this"关键字?
- 在什么情况下,两个堆栈分配的结构对象的 this 点指向同一个地址?
- "Unable to start debugging. No process is associated with this object." - 在Visual Studio Code中使用GDB
- QObject::连接无法将信号连接到*this*对象的插槽
- 析构函数中的"delete this"
- 为什么成员函数内的"this"指针为空?
- 为什么我需要在转换构造函数上引用 this->?
- 在Boost库asio示例中,处理程序分配之前的[this,self]意味着什么
- 为什么有些类方法返回"*this"(self的对象引用)?
- 如何在声明当前命名空间时引用它?有没有像"self"/"this"这样的词?