0

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.
OverShifted
  • 457
  • 1
  • 7
  • 17

1 Answers1

0

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{};.

OverShifted
  • 457
  • 1
  • 7
  • 17