Tip21:宁以pass-by-reference-to-const替换pass-by-valuue
1、内置类型以及STL的迭代器和函数对象可以pass-by-value(可以假设其并不昂贵)
2、其余类型pass-by-reference-to-const
原因:
1、时间耗费昂贵:pass-by-value会调用类的复制构造函数,创建对象的副本,调用结束时,调用析构函数。
2、对象切割(slicing):当以基类型为形参的函数,传入实参为继承子类型对象时,pass-by-value时会copy该对象,但是调用的是基类型的构造函数,造成对象切割(slicing)。