带有对象指针作为参数的C ++拷贝构造函数

时间:2015-03-27 17:43:35

标签: c++ copy-constructor deep-copy

我对C ++的复制和赋值构造函数仍然有点不稳定。到目前为止我所拥有的是A.hpp

class A {
private:
     char* str;
public:
     A(char* str);

     // strcpy str from other to this.
     A(const A& other);

     // free str in this, and strcpy str from other to this.
     A& operator=(const Type& other);
}

假设我有A* a = new A(some_char_str); ,我能够写A b = *a;ba的深层副本。 现在的问题是我希望能够编写A* b = new A(a);那么如何指定一个构造函数,该构造函数指向A并在堆上创建一个新的A

1 个答案:

答案 0 :(得分:1)

哦大脑放屁......我刚才意识到我可以自己提供构造函数A::A(const A* other)而不使用复制/赋值构造函数, 或者只是按评论中的建议写下A* b = new A(*a);