Ami*_*mar 6 c++ recursion static member
"一个类不被认为是定义的,直到它的类体完整,一个类不能拥有自己类型的数据成员.一个类可以有数据成员作为指针/引用它自己的类型."
说得通.
但是为什么这允许呢?
class justAClass
{
public :
justAClass();
private :
static justAClass justAMember;
}
Run Code Online (Sandbox Code Playgroud)
对于指针,它是可以理解的.但是上面这个怎么样呢?我将如何决定这类课程的大小?它是一个递归的情况(没有基本条件)拥有自己类型的成员,即使它是静态的?
类的原因不能是拥有自己类型的数据成员,编译器必须知道类对象的大小.例如,一个类是函数中的局部变量,编译器只能知道类的大小才能处理堆栈.
对于您的情况,静态类成员不驻留在类对象中,因此不会影响类对象的大小.没关系.
| 归档时间: |
|
| 查看次数: |
5577 次 |
| 最近记录: |