In a class, if I have:
private:
MyClass myObj;
vs
private:
MyClass myObj();
private:
MyClass myObj{};
And assuming MyClass
takes no parameter in its constructor.
In a class, if I have:
private:
MyClass myObj;
vs
private:
MyClass myObj();
private:
MyClass myObj{};
And assuming MyClass
takes no parameter in its constructor.
MyClass myObj;
This declares a class member named myObj, that gets default-constructed, by default.
MyClass myObj();
This declares a class method, a class function, named myObj
that takes no parameters and returns a MyClass
object.
MyClass myObj{};
This also declares a class member named myObj, that gets default-constructed, by default, just like without the {}
.
Welcome to C++.