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

时间:2016-01-25 14:14:58

标签: c++ constructor copy-constructor member-initialization

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

离。

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

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

编辑:只是为了澄清我改变了一条线的问题。

3 个答案:

答案 0 :(得分:2)

我只是复制指针,因此它们都会指向相同的字符串。

如果您以后想要删除指向的字符串,这可能会导致您遇到问题。

答案 1 :(得分:0)

它同时做到了:

  • 复制指针。

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

答案 2 :(得分:-2)

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

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