If I have a class below which has standard constructors and desturctor
class A {
private:
int data
public:
//normal constructor
A(int other)
//move constuctor
A(A&& other)
//move operator
A& operator=(A&& other)
//copy constructor
A(const A& other)
//copy assignment operator
A& operator=(const A& other)
//destrcutor
~A()
}
What happens when I return an object from a function and use that as a constructor? Is the copy constructor called on the return of the function and a new object created? And is the destructor for the temporary object in the function called when the function call ends?
A initialise(bool b){
if(b==true){
A Temp1(1)
return Temp1
}
else{
A Temp2(2)
return Temp2
}
}
int main(){
A a(initialise(true));
}
Aucun commentaire:
Enregistrer un commentaire