属于副本被推送到矢量的对象的指针会发生什么情况?



我正在使用Qt/C++。

所以我有一个向量:

QVector<Room> rooms; //does everything like normal vector from what I've seen(I hope)

我的房间类看起来像这样:

class Room{
Textbox *t;
//other stuff
}

当添加房间时,vector 会制作一个通过引用传递的房间的副本,并将副本推入:

void Floor::AddRoom(Room &_room, QWidget *_window)
{
rooms.push_back(_room);    
}

我的问题是属于_room的文本框指针会发生什么,因为它在复制之前指向某些东西(如果它被制作出来(?我的新推送房间会*t指向与通过引用传递的_room相同的地址/对象,还是会变为 nullptr?

我阅读了文档,但找不到有关将对象副本推送到矢量时指针会发生什么的任何信息。 提前谢谢。

是的,如果您不提供自己的复制构造函数,它将指向与原始对象相同的对象,因为复制的是指针的值,而不是指针指向的对象。