我正在使用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?
我阅读了文档,但找不到有关将对象副本推送到矢量时指针会发生什么的任何信息。 提前谢谢。
是的,如果您不提供自己的复制构造函数,它将指向与原始对象相同的对象,因为复制的是指针的值,而不是指针指向的对象。