std :: move with&& (rvalue reference)作为成员函数返回类型

时间:2017-03-30 07:58:51

标签: c++ c++11 c++14

我只想初始化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;
}

0 个答案:

没有答案