首先,我们来看这样一个函数:
(T为一个对象类型)
T clone(const T& rhs)
{
T other = rhs;
return other;
}
这样的函数中,其实会调用两次拷贝构造函数。我们写一个实例看看:
class Example
{
public:
Example();
Example(const Example& other);
~Example();
Example clone();
public:
int count;
int* pNumber;
};
#include "move_semantic.h"
#include <iostream>
using namespace std;
Example::Example()
{
cout << "默认构造函数..." << '\n';
}
Example::Example(const Example& other)
{
count = other.count;
pNumber = new int[count];
// 深拷贝
for (