c++ - 属于对象的指针会发生什么情况,其拷贝被推送到 vector?

标签 c++ qt pointers vector copy

我正在使用 Qt/C++。

所以我有一个 vector :

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?

我阅读了文档,但找不到任何有关将对象拷贝推送到 vector 时指针会发生什么情况的信息。 提前致谢。

最佳答案

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

关于c++ - 属于对象的指针会发生什么情况,其拷贝被推送到 vector?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45029712/

相关文章:

c++ - Swig:ValueWrapper 和模板 BUG?

ns2 中的 C++ undefined reference

qt - PyQt5 一信号多槽

c++ - 有没有办法使用 QJsonObject 在整个 json 文件中找到一个键?

c++ - 如何从成员访问 protected /私有(private)的嵌套类指针

c++ - 将 CView 转换为 CFormView

c++ - 可以使用lock_guard采用的互斥锁的锁导致UB吗?

c++ - 我无法使用 QFileDialog、C++ QT 保存 .txt 文件

c - 指针运算 (char*) &a[1] - (char *)&a[0] == 4

c++ - 循环具有相似名称的对象