I have overloaded a new operater for a class that returns void * and i have created an object for that class in heap as below. CMyClass *pMyClass = new CMyClass(); // Here though i haven't explicitly casted void* to CMyClass, the compiler doesnt give error at all.