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

C++ 属于其副本被推送到向量的对象的指针会发生什么情况?,c++,qt,pointers,vector,copy,C++,Qt,Pointers,Vector,Copy,我正在使用Qt/C++ 所以我有一个向量: QVector<Room> rooms; //does everything like normal vector from what I've seen(I hope) 添加房间后,vector将创建通过引用传递的房间的副本,并将副本推入: void Floor::AddRoom(Room &_room, QWidget *_window) { rooms.push_back(_room); } 我的问题是属于\u

我正在使用Qt/C++

所以我有一个向量:

QVector<Room> rooms; //does everything like normal vector from what I've seen(I hope)
添加房间后,vector将创建通过引用传递的房间的副本,并将副本推入:

void Floor::AddRoom(Room &_room, QWidget *_window)
{
  rooms.push_back(_room);    
}
我的问题是属于
\u room
的文本框指针会发生什么情况,因为它在复制之前指向某个对象,如果它被复制的话?我的新推送的文件室是将其
*t
指向与通过引用传递的
\u文件室
相同的地址/对象,还是将成为空PTR

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

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

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

恭喜,您刚刚遇到的一个基本问题是软件设计:数据所有权。谷歌“C++智能指针”。用调试器回答这个问题很简单,或者只需将入站
\u room
参数的指针和向量对象指针的背面打印到stdout就可以了。恭喜你,你刚刚遇到了一个基本问题:软件设计:数据所有权。Google“C++智能指针”。用调试器回答这个问题很简单,或者只需将入站
\u room
参数的指针和向量对象指针的背面打印到标准输出即可。
void Floor::AddRoom(Room &_room, QWidget *_window)
{
  rooms.push_back(_room);    
}