假设我有一个类,我有一个静态成员,但我不创建任何类型的对象.内存是否会被静态变量占用?如果它被占用,将它放入课堂有什么意义?
"一个类不被认为是定义的,直到它的类体完整,一个类不能拥有自己类型的数据成员.一个类可以有数据成员作为指针/引用它自己的类型."
说得通.
但是为什么这允许呢?
class justAClass
{
public :
justAClass();
private :
static justAClass justAMember;
}
Run Code Online (Sandbox Code Playgroud)
对于指针,它是可以理解的.但是上面这个怎么样呢?我将如何决定这类课程的大小?它是一个递归的情况(没有基本条件)拥有自己类型的成员,即使它是静态的?
如果我尝试初始化obj_s它要求我做它const- 我不能这样做因为我必须继续计算我的创建对象.
#include<iostream>
class A
{
static int obj_s=0;
public:
A(){ ++obj_s;cout << A::obj_s << "\nObject(s) Created\n"; }
};
int main()
{
A a,b,c,d;
}
Run Code Online (Sandbox Code Playgroud)
下面的代码一直给我以下错误:
[Linker error] undefined reference to `A::obj_s'
Run Code Online (Sandbox Code Playgroud)