以对象指针为参数的 C++ 复制构造函数

C++ copy constructor with object pointer as argument

我对 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

哦,好吧,脑子放屁...我刚刚意识到我可以自己提供构造函数 A::A(const A* other) 而无需使用 copy/assignment 构造函数, 或者按照评论中的建议写 A* b = new A(*a);