class Example
{
private:
Example* pointer;
Example* pointer2;
public:
Example();
void setPointer2();
};
Example::Example()
{
pointer = new Example();
}
void Example::setPointer2(Example* object)
{
this->pointer2 = object;
}
int main()
{
Example object;
object.setPointer2(new Example());
return 0;
}
删除不重要。我只想知道这两个对象之间的区别是指针和指针2保持地址。它们分配不同吗?实际的问题是,在哪里使用“ new”运算符有关系吗?
您的代码中的一个主要问题是无限递归!您定义的构造函数:
Example::Example()
{
pointer = new Example();
}
创建自己类型的新对象。这将再次调用构造函数,而该调用将再次调用构造函数...]
但是,除了那个问题,是直接将其地址分配给new
来创建pointer
对象还是在其他位置创建对象,然后将其地址(以后)分配给pointer2
都没有关系]。两者都将指向该类的对象。