Single class
Given a class
A
with a default constructor, the following code:
A a();
is a declaration of a function that returns an object of type
A
and takes no arguments. You will get a compilation error when you try to call a method on
a
or pass it to some other method/function. To create an instance of
A
you have to avoid the brackets and simply use
A a;
2 classes
In addition to the simple class
A
, lets define also a class
B
as follows:
struct B {
B(const A& a) {}
};
Just as in the example above,
B b1(A());
B b2(A);
declares 2 functions. The first returns an instance of
B
and takes, as parameter, a function with no inputs and which returns
A
. The second also returns
B
, but has a parameter of type
A
.
To create an instance of
B
with a temporary default constructed instance of
A
you will have to wrap the creation of the temporary instance with round brackets.
B b1((A()));
No comments:
Post a Comment