是否有传递构造函数参数的首选做法?特别是如果这些构造函数参数用于初始化成员变量。
一个简化的例子。
class Example
{
public:
Example( /*type-1*/ str, /*type-2*/ v ):
m_str( str ),
m_v( v )
{ }
/* other methods */
private:
std::string m_str;
std::complex<float> m_v;
};
选项包括:
- 按值传递,然后
std::move
将对象放入成员中。 const&
,然后将参数复制到成员中。&&
,然后用参数初始化成员。
我的默认/首选参数传递方式应该是什么?
它会随着不同的参数类型而变化吗?
我的直觉说使用右值引用,但我不确定我是否理解所有的利弊。