c++ - Difference between two ways of using default constructor -
What is the difference between defining an object of a square "person" by using its default constructor after two different ways: / P>
Method 1:
person = person (); Method 2:
person (); When I started some variables inside the default constructor and tried to use those variables or tried to set those variables with the set / set methods in the main routine, then I found the compilation error in Method 2, but method 1 works.
Thank you.
person = person (); This declares an person object called a person . It starts with this object a temporary object created by Person () . This means that it will implement the copy / driver converter of the person (which will probably be omitted).
person (); This is a function is called person which gives the person object to an object There is no announcement.
You want it instead:
person; This declares an object called person by calling
You have introduced the new "Uniform" initialization syntax which is introduced in C ++ 11, which avoids the ambiguity between the variables and the announcements of the functions:
Person person {}; And finally, if you have died, you may want to use the style proposed by Herb Sutter:
auto person = person {};
Comments
Post a Comment