public:
a xxx;
};
编译不通过。请问有没有办法可以实现的?
17 个解决方案
#1
只能嵌套自身的指针,类似C中的list结构体那样
#2
不可以,如果行的话岂不成了无限递归
#3
如果嵌套自身如何构造对象,如何计算对象的大小呢
#4
那请问,怎样实现一个类里面有像自身一样的成员?
比如说四个一样的小正方形可以拼成一个正方形。
比如说四个一样的小正方形可以拼成一个正方形。
#5
不能实例化一个未知大小的类,因此直接a xxx是不行的,但这里并没有发生递归的行为,因为无法实例化。
但静态成员是一个例外,因为静态成员不在类体内创建,因此允许在类体内声明自身的静态成员,例如:
class a
{
static a xxx;
};
这是允许的。
#6
从构造来说,不可构造!
#7
高!!
#8
这个“拼成”并不能机械地理解为面向对象意义上的包含
小正方形拼接成大正方形是几何关系,可以如下实现
bigRect = littleRect1.Union(littleRect2);
//依次拼接4个...
#9
用指向类的指针
#10
实例化的时候new出四个自己来。
那四个小的需不需要再new,就看你自己的意思了。
#11
在类内定义用指针
#12
嵌套可以,但是不可以用到类的内容,否则就会出错,像楼上所说,可以定义指针,你做数据结构的时候,二叉树的左右子树不都是这么做的吗?
#13
指针,就类似于C中的Struct,你要是自身的话就死循环了。
#14
路过看看
#15
是不是只能用指向类的指针来实现?然后new?
#16
还是在类外实现吧
#17
盖个楼:
class a;
class a{
public:
a xxx;
}
#1
只能嵌套自身的指针,类似C中的list结构体那样
#2
不可以,如果行的话岂不成了无限递归
#3
如果嵌套自身如何构造对象,如何计算对象的大小呢
#4
那请问,怎样实现一个类里面有像自身一样的成员?
比如说四个一样的小正方形可以拼成一个正方形。
比如说四个一样的小正方形可以拼成一个正方形。
#5
不能实例化一个未知大小的类,因此直接a xxx是不行的,但这里并没有发生递归的行为,因为无法实例化。
但静态成员是一个例外,因为静态成员不在类体内创建,因此允许在类体内声明自身的静态成员,例如:
class a
{
static a xxx;
};
这是允许的。
#6
从构造来说,不可构造!
#7
高!!
#8
这个“拼成”并不能机械地理解为面向对象意义上的包含
小正方形拼接成大正方形是几何关系,可以如下实现
bigRect = littleRect1.Union(littleRect2);
//依次拼接4个...
#9
用指向类的指针
#10
实例化的时候new出四个自己来。
那四个小的需不需要再new,就看你自己的意思了。
#11
在类内定义用指针
#12
嵌套可以,但是不可以用到类的内容,否则就会出错,像楼上所说,可以定义指针,你做数据结构的时候,二叉树的左右子树不都是这么做的吗?
#13
指针,就类似于C中的Struct,你要是自身的话就死循环了。
#14
路过看看
#15
是不是只能用指向类的指针来实现?然后new?
#16
还是在类外实现吧
#17
盖个楼:
class a;
class a{
public:
a xxx;
}