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 within an

本文探讨了C++中new/delete与malloc/free的区别,友元函数的定义与作用,虚函数与纯虚函数的特性,堆栈内存的使用场景,引用与指针的差异,智能指针的作用,队列与栈的不同,以及volatile关键字的用途。同时涵盖了数组、列表和向量的特性,并提及C++的新特性,如auto、nullptr和智能指针。

1326

被折叠的 条评论
为什么被折叠?



