This question already has an answer here:
I just want to initialize a member data oneObj of class Two as below which compiles fine. I would like to know whether it is advisable to use std::move and && together to initialize an object or just pass the oneObj as a reference to InitObjOne as follows InitObjOne(One & obj) and initialize it. is there any advantage over another. Please clarify.
Note: The InitObjOne need to perform few actions for creating an object of One, I've just given a skeleton of the functionalities here.
#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;
}
Aucun commentaire:
Enregistrer un commentaire