在对象的定义中创建一个对象

时间:2013-11-16 01:19:20

标签: c++ nested

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

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

是否会有一种方法,最好是使用类,以实现这一目标?

1 个答案:

答案 0 :(得分:2)

你只能使用指针来做到这一点:

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

请记住,如果这样做,您将不得不担心内存管理,因为这些对象应在何时何地取消分配。智能指针是可行的方法。