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
才会被完全定义。另一方面,静态成员变量需要在类完全定义后进行单独的定义步骤,这就是为什么它们能够工作的原因。Base
包含一个 Base
,而这个 Base
又包含了一个 Base
... - James Kanze