成员初始化列表是否复制字符串C++

Does member initialization list copy string C++

本文关键字:字符串 C++ 复制 是否 初始化 列表 成员      更新时间:2023-10-16

如果我在具有char*的类的构造函数中使用成员初始化列表,它是将值复制到新分配的内存中还是仅将指针指向相同的值?

前任。

MyString::MyString(const MyString & other) : m_str(other.m_str) {}

这会很好,还是我应该逐个单元格运行以复制信息?

编辑:只是为了澄清这个问题,我改变了一行。

我只是复制指针,所以它们都指向同一个字符串。

如果您以后想要删除指向的字符串,这可能会给您带来问题。

它同时执行以下两项操作:

  • 它复制指针。

  • 指针
  • 的副本指向与原始指针相同的内容。

指针

变量(以一种非常简单的方式看待它)基本上只不过是一个由编译器专门处理的整数变量。(初始化的)指针变量的内容是它在内存中指向的地址

如果将一个指针变量初始化为另一个指针变量的内容,则会复制内容,从而导致两个不同的变量都具有相同的内容,并且都指向相同的内存。