在对象的定义中创建对象

Create an object within the object's definition

本文关键字:创建对象 定义 对象      更新时间:2023-10-16

我有一个比较两个对象的类,但我希望它能够在自身内部比较自身(如果这有任何意义的话)。换句话说,我希望一个可比性是两个可比对象的集合,并允许它们嵌套。例如,可比的可以是{A,B},其中A和B都是可比的,所以A可以是{C,D},B可以是{E,F},所以父可比的将是{{C,D},{E,F}},允许无限嵌套。但是,我知道这在本例中是不可能的:

class Comparable
{
        Comparable A, B;
    public:
        Comparable(Comparable A, Comparable B)
        {this->A = A; this->B = B};
};

有没有一种方法,最好是使用类,可以允许这样做?

您只能使用指针来执行此操作:

class Comparable
{
        Comparable *A, *B;
    public:
        Comparable(Comparable *A, Comparable *B)
        {this->A = A; this->B = B};
};

请记住,如果这样做,您将不得不担心内存管理,例如何时何地应该取消分配这些对象。智能指针是必经之路。