C++ class object creation with explicit constructor call

117 Views Asked by At

I know that creating an object will cause constructor to call. But when I create an object Class Obj(); neither constructor nor destructor is called. For example, I have a class named Test:

Test t;      // This will cause the default constructor to call
Test t(abc); // This will cause the parametrized constructor to call
Test();      // This will cause the default constructor to call, an un-named object will be created and destroyed immediately.
Test t();    // What happens in this case? Neither constructor nor destructor is called. It seems like no object is created.
1

There are 1 best solutions below

0
OverShifted On

Test t(); Creates a forward declaration for a function named t which accepts no arguments, and returns an "object" with the Test type.

No instances of Test are created. To call the default constructor, Use either Test t; (As you mentioned) or Test t{};.