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