Difference between new/delete and malloc/free
New/delete is C++, malloc/free comes from good old C.
In C++, new
calls an objects constructor and delete
calls the destructor.
Malloc and free, coming from the dark ages before OO, only allocate and free the memory, without executing any code of the object.
When you new an object, space for the object is not only allocated but the object’s constructor is called.
And similarly when you delete an object, the object’s destructor is called before the memory is released. If you use malloc and free, the destructor and constructor do not get called respectively and obviously, this simply won’t do in C++ except in certain very rare situations where you have classes without any specific destructor/constructors. new is a operator and malloc is a function.
Friend function
A friend function of a class is defined outside that class’s scope but it has the right to access all private and protected members of the class.
Even though the prototypes for friend functions appear in the class definition, friends are not member functions.
A friend can be a function, function template, or member function, or a class or class template, in which case the entire class and all of its members are friends.
Virtual function and pure virtual function
A virtual function or virtual method is a function or method whose behavior can be overridden with