我只想初始化oneObj
的成员数据class Two
,如下所示编译正常。我想知道是否建议一起使用std::move
和&&
来初始化对象,或者只是将oneObj
作为InitObjOne
的引用传递给InitObjOne(One & obj)
,如下所示{{1并初始化它。是否有任何优势。请澄清。
注意: InitObjOne
需要执行一些操作来创建One
的对象,我刚刚给出了这里的功能框架。
#include <iostream>
using namespace std;
class One
{
public:
int x;
};
class Two
{
public:
Two();
private:
One oneObj;
One && InitObjOne();
};
Two::Two() : oneObj(InitObjOne())
{
}
One && Two::InitObjOne()
{
One aObjOne;
return std::move(aObjOne);
}
int main()
{
Two two;
return 0;
}