本文通过一个简单的demo,说明了函数调用过程中参数和返回值的拷贝情况,如果将参数和返回值改为其引用,则会避免本次拷贝。
#include <iostream>using namespace std;//函数调用中的参数与返回值的copy
class Test{public:
Test(int a=0):m_a(a){
cout << "Test()!"<<endl;}
Test(Test& that){
this->m_a = that.m_a;cout << "Test(Test& )!"<<endl;}
Test& operator =(const Test& that){
m_a = that.m_a;cout << "Test& operator =(const Test& that)!"<<endl;return *this;