64,681
社区成员
发帖
与我相关
我的任务
分享
class BASE {
public:
int *i = new int(5); //ok
BASE base; //error 因为会引起递归定义
BASE *base_0 = new BASE(); //error 如何理解?
static const BASE base_1; //ok 因为在全局区分配
static BASE base_2; //ok 因为在全局区分配
~BASE() {
cout << "~";
}
};
class A {
A() : p(nullptr) {}
A *p = new A; // 可以通过编译
};
[/quote]
嗯,你说的对,我疏忽了。default member init 是新加的,我以为没有特权呢。主楼的错误是因为缺默认构造函数。
class BASE {
public:
BASE();
int *i = new int(5); //ok
//BASE base; //error 因为会引起递归定义
BASE *base_0 = new BASE(); //error 如何理解?
static const BASE base_1; //ok 因为在全局区分配
static BASE base_2; //ok 因为在全局区分配
~BASE() {
}
};
class A {
A() : p(nullptr) {}
A *p = new A; // 可以通过编译
};