Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否可以将类的对象声明为同一类的成员变量?_C++_Class - Fatal编程技术网

C++ 是否可以将类的对象声明为同一类的成员变量?

C++ 是否可以将类的对象声明为同一类的成员变量?,c++,class,C++,Class,这听起来可能很傻,我不知道 class Example { private: Example x; public: //Methods }; 在java中是可能的,但是C++中显示错误。(字段“x”的类型不完整) 如何在C++中实现这一点?如果没有,还有什么其他方法可以做到这一点。我知道一个,指针:)还有别的吗 也,我很高兴知道,C++中的限制是什么? 谢谢。参考: 这是C++中不允许的,因为它是递归结构。 但是,可以使用具有相同类类型地址的指针(自引用指针

这听起来可能很傻,我不知道

class Example {
 private:
       Example x; 
 public:
       //Methods
 };

在java中是可能的,但是C++中显示错误。(字段“x”的类型不完整)

如何在C++中实现这一点?如果没有,还有什么其他方法可以做到这一点。我知道一个,指针:)还有别的吗

<>也,我很高兴知道,C++中的限制是什么?

谢谢。

参考:

<>这是C++中不允许的,因为它是递归结构。 但是,可以使用具有相同类类型地址的指针(自引用指针)


包含自身的类。它的大小是多少(
sizeof(示例)
)?Java只支持用户定义类型的引用语义…链接的价值值得怀疑。它从一开始就很好,然后进入到一般情况下不相关的特定于图形的细节中。除了指针之外,还有其他方法可以这样做吗?因为在原始问题
示例中
明确拥有
x
,那么在您的示例中
aObj
应该是
std::unique\u ptr aObj
而不是
A*aObj
。您需要明确地实现拷贝分配和拷贝构造。值得一提的还有@FrançoisAndrieux提出的
std::shared_ptr
std::weak_ptr
以及
std::unique_ptr
的可能性。另见:
class A
{
    A* aObj; // Self Referential Pointer
}