众所周知,当类的对象作为函数返回值的时候,函数会调用类的复制构造函数或移动构造函数,来构造一个临时无名
对象返回主函数中。
当一个类中既有复制构造函数,又有移动构造函数的时候,函数在返回时,编译器调用的是复制构造函数还是移动构
造函数?调用的依据又是什么?首先来看一个例子:
#include<iostream>
using namespace std;
class IntNum{
private:
int *xptr;
public:
//构造函数
IntNum(int x = 0) : xptr(new int(x)