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