Oop 类是否可以有自己类型的成员?
为了模拟包含关系,其中对象包含相同类型的其他实例,我可以这样定义一个类吗Oop 类是否可以有自己类型的成员?,oop,Oop,为了模拟包含关系,其中对象包含相同类型的其他实例,我可以这样定义一个类吗 class RussianDoll { string name; RussianDoll doll; RussianDoll(); } 我应该如何为这个类构建构造函数?当然,为什么不呢?只要您不是无限期地实例化它 class RussianDoll { RussianDoll parentDoll; RussianDoll(RussianDoll parentDoll) {
class RussianDoll {
string name;
RussianDoll doll;
RussianDoll();
}
我应该如何为这个类构建构造函数?当然,为什么不呢?只要您不是无限期地实例化它
class RussianDoll {
RussianDoll parentDoll;
RussianDoll(RussianDoll parentDoll) {
this.parentDoll = parentDoll;
}
}
是的。一个常见的例子是链表 但是,您不能无条件地在构造函数中创建子对象,否则将创建无限多的对象 类是否可以有自己类型的成员? 当然。这其实很普遍。想想链表中的节点的情况,例如:
class Node {
Node next;
int value;
}
如何构建此类的构造函数? 您有几个选项(见下文)。显然,您应该避免在每次调用构造函数时创建新的类实例,因为这将导致无限递归
- 您可以将一个
作为参数,并像这样初始化它节点
this.next = nextArg;
- 您可以将其初始化为空引用
this.next = null;
- 您可以将其初始化为
this
this.next = this;
(通常在构造函数中创建一个完整的对象图是个坏主意,这样我就不用担心了:-)答案取决于使用的语言。@Ignacio哪些语言不允许这样做?