类的自己类型的静态类成员

Ami*_*mar 6 c++ recursion static member

可能重复:
如果没有创建该类的对象,则类的静态成员是否占用内存?
一类中静态成员的内存分配

"一个类不被认为是定义的,直到它的类体完整,一个类不能拥有自己类型的数据成员.一个类可以有数据成员作为指针/引用它自己的类型."

  • C++入门(Lippman Lajoie)

说得通.

但是为什么这允许呢?

class justAClass
{
     public  : 
     justAClass();

     private :          
     static justAClass justAMember;
}
Run Code Online (Sandbox Code Playgroud)

对于指针,它是可以理解的.但是上面这个怎么样呢?我将如何决定这类课程的大小?它是一个递归的情况(没有基本条件)拥有自己类型的成员,即使它是静态的?

Rol*_*dXu 8

类的原因不能是拥有自己类型的数据成员,编译器必须知道类对象的大小.例如,一个类是函数中的局部变量,编译器只能知道类的大小才能处理堆栈.

对于您的情况,静态类成员不驻留在类对象中,因此不会影响类对象的大小.没关系.


归档时间:

查看次数:

5577 次

最近记录:

14 年,2 月 前