如果我重命名名称空间,我必须记住查看其余代码并进行所有必要的更改。是否有类似于self
、this
或current
用于引用当前命名空间的单词?
namespace myNamespace {
int myInt;
void myFunc() {
myNamespace::myInt = 66;
}
};
如果我重命名名称空间,我必须记住查看其余代码并进行所有必要的更改。是否有类似于self
、this
或current
用于引用当前命名空间的单词?
namespace myNamespace {
int myInt;
void myFunc() {
myNamespace::myInt = 66;
}
};
为什么要引用当前的命名空间?其实这是没有必要的,你可以很容易地写成:
namespace myNamespace {
int myInt = 33;
void myFunc() {
myInt = 33;
}
};
无论声明了哪些变量(例如全局变量myInt
),这个作用域中的变量将被默认使用。但是如果您想要更改名称,可以使用IDE技术,比如替换或重构。
无论声明了哪些变量(例如全局变量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;
::
前缀表示全局命名空间。