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.
Test t();Creates a forward declaration for a function namedtwhich accepts no arguments, and returns an "object" with theTesttype.No instances of
Testare created. To call the default constructor, Use eitherTest t;(As you mentioned) orTest t{};.