class base {
public:
base a;
};
它给编译错误。为什么一个类允许自己拥有一个静态成员,但不是一个非静态成员?
class base {
public:
static base a;
};
,而该代码不给编译错误
class base {
public:
base a;
};
它给编译错误。为什么一个类允许自己拥有一个静态成员,但不是一个非静态成员?
class base {
public:
static base a;
};
,而该代码不给编译错误
因为static
类成员不存储在类的实例,这就是为什么一个static
会工作。
将对象存储在相同类型的另一个对象内会破坏运行时 - 无限大小,对吧?
sizeof
会返回什么?编译器需要知道对象的大小,但由于它包含相同类型的对象,因此它没有意义。
我猜的错误是一样的东西
场“”具有不完全类型
这是因为当不是静态的,类A
没有完全直至收盘括号定义。另一方面,静态成员变量在类完全定义后需要单独的定义步骤,这就是它们工作的原因。
搜索声明和定义之间的区别以获得更全面的解释。
struct a {static a b; } a :: b; – 2011-12-15 09:29:17
@ JohannesSchaub-litb你刚刚给我头痛o_O – 2011-12-15 10:06:54