【发布时间】:2020-01-28 20:00:18
【问题描述】:
根据https://en.cppreference.com/w/cpp/language/injected-class-name
在类范围内,当前类的名称被视为 是公开的成员姓名;这称为注入类名。这 名称的声明点紧随开幕式 类定义的大括号。
int X;
struct X {
void f() {
X* p; // OK. X refers to the injected-class-name
::X* q; // Error: name lookup finds a variable name, which hides the struct name
}
};
那么代码中到底发生了什么? X* p变成X::X* p了吗?
【问题讨论】:
标签: c++ class scope name-lookup injected-class-name