c++ - 在对象的定义中创建一个对象

标签 c++ nested

我有一个比较两个对象的类,但我希望它能够在自身内部比较自身(如果这有意义的话)。换句话说,我希望 Comparable 是两个 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};
};

是否有一种方法(最好是使用类)允许这样做?

最佳答案

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

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

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

关于c++ - 在对象的定义中创建一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20013445/

相关文章:

c++ - 有没有办法防止在派生类中调用特定的继承函数?

c++ - 使用静态转换,因为动态转换失败。不好的做法?

c++ - 在 C++ 中使用 execvp 的最佳实践

python - 如何循环嵌套字典列表并带来 k :v pairs to 1st-level dictionary? JSON 数据

java - 如何在 JTable 中呈现 JTable?

c# - 在静态类中实例化嵌套类

C++/XCode - 如何生成 pdf?

c++ - Ubuntu下如何用FLTK编译

c++ - 在专用模板中访问嵌套 friend 类的私有(private)成员

Javascript:如何在函数内无延迟地执行函数?