c++ - 类自身类型的静态类成员

标签 c++ recursion static member

<分区>

Possible Duplicate:
Do static members of a class occupy memory if no object of that class is created?
Memory Allocation of Static Members in a Class

“一个类在其类主体完成之前不会被视为已定义,一个类不能有自己类型的数据成员。一个类可以有数据成员,这些数据成员是指向自己类型的指针/引用。”

  • C++ 入门(Lippman Lajoie)

有道理。

但为什么允许这样做呢?

class justAClass
{
     public  : 
     justAClass();

     private :          
     static justAClass justAMember;
}

对于指针来说是可以理解的。但是上面的东西将如何工作?我将如何决定此类对象的大小?拥有自己类型的成员(即使它是静态的)不是递归情况(没有基本条件)吗?

最佳答案

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

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

关于c++ - 类自身类型的静态类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9902384/

相关文章:

c++ - 如何在行编辑 Qt Creator 中设置文本?

c - 返回字符串中包含子字符串的第一个索引的递归函数

methods - 何时在 Salesforce 中将方法声明为静态

c - 局部变量和静态变量

c++ - 如何找到分配动态内存的 C++ 语言结构?

c++ - 使GDB在步进过程中避免一些源文件

recursion - Lisp 编程错误(堆栈溢出(深))

java - 在java文件之间使用静态方法

c++ - LibCurl HTTPS 凭据,内部处理的序列?

r - 仅在顶层拆分带有嵌套括号的字符串,其中 "level"由括号确定