- 如果函数打算将参数更改为副作用,请通过非常量引用获取它。
- 如果函数不修改其参数并且参数是原始类型,则按值获取。
- 否则,通过 const 引用获取它,但以下情况除外: 如果该函数无论如何都需要制作 const 引用的副本,请按值获取。
对于如下构造函数,如何确定?
class A
{
public:
A(string str) : mStr(str) {} // here which is better,
// pass by value or const reference?
void setString(string str) { mStr = str; } // how about here?
private:
string mStr;
};