cod*_*ete 8 c++ class member classname visual-c++
标准说:"如果成员是静态数据成员,成员函数,成员类型,成员模板,未作用域枚举的枚举器,成员的成员,则T类的成员不能使用T作为其名称匿名联合.但是,只要没有用户声明的构造函数,非静态数据成员就可以使用名称T."
但是,如果我创建此类,则会产生编译错误.
class G
{
int G;
};
Run Code Online (Sandbox Code Playgroud)
我正在使用VS2013.是不允许在Microsoft或?
如果 VC++ 不允许这样做,那就是一个错误。
然而,这个语言“特性”是为了兼容C,微软决定不强调C。例如,C99特性通常在被C++采用之前不可用。您绝对不应该在 C++ 中故意声明这样的成员。
(默认情况下,C 中允许这样做:对成员的命名没有限制,并且所有成员都是非静态数据成员。)