关于复制构造函数的问题

leg*_*o69 3 c++

我有这门课:

class A {
private:
 int player;
public:
 A(int initPlayer = 0);
 A(const A&);
 A& operator=(const A&);
 ~A();
 void foo() const;
};
Run Code Online (Sandbox Code Playgroud)

我有包含这一行的函数:

 A *pa1 = new A(a2);
Run Code Online (Sandbox Code Playgroud)

有人可以解释究竟发生了什么,当我调用A(a2)编译器调用复制构造函数或构造函数时,请提前感谢

GMa*_*ckG 5

假设a2是一个实例A,这将调用复制构造函数.

它将调用operator new为对象获取动态内存,然后它将复制构造一个新对象到内存中,然后返回指向该内存的指针.