Predict the output of following program.
#include<iostream> #include<stdlib.h> using namespace std;
class Test
{ public :
Test()
{ cout << "Constructor called" ; }
}; int main()
{ Test *t = (Test *) malloc ( sizeof (Test));
return 0;
} |
(A) Constructor called
(B) Empty
(C) Compiler Error
(D) Runtime error
Answer: (B)
Explanation: Unlike new, malloc() doesn’t call constructor (See this)
If we replace malloc() with new, the constructor is called, see this.
Quiz of this Question