
c++
Kuroba_thief
互相交流
展开
-
详解malloc/free和new/delete
今天就浅谈一下malloc/free和new/delete的区别,剖析一下它们的工作原理以及使用宏来模拟实现new/delete的功能。 区别: ①malloc/free是c/c++的标准库函数,而new/delete则是c++中的运算符; ②malloc/free只是动态分配内存空间/释放空间。而new/delete除了这些以外还会调用类的构造函数和析构函数进行初始化和清理; ③mall原创 2017-10-22 21:43:04 · 737 阅读 · 0 评论 -
通过菱形继承剖析虚继承解决二义性和数据冗余问题
什么是菱形继承? 假设有一个类A,它有两个子类,分别为类B和类C,再有一个类D又继承了B类和C类;如图: 类似于这种,有子类对象包含多份父类对象的继承模型称为菱形继承。 上述菱形继承体系中,类D多重继承了类B和类C,因此,类D含有两份基类A的成员;此种继承方式会造成两个问题:二义性和数据冗余。 先看一段代码: #include using namespace std;原创 2017-11-05 17:39:50 · 860 阅读 · 0 评论 -
浅谈类的六个默认成员函数和隐含的this指针
今天简单的浅谈一下关于类和对象的一些基础认识! 类的六个默认成员函数:构造函数、拷贝构造、析构函数、赋值操作符重载、取地址操作符重载和const修饰的取地址操作符重载。 构造函数:是一个特殊的成员函数,名字与类名相同,创建类类型对象时,由编译器自动调用,在对象的生命周期内只且只调用一次,以保证每个数据成员都有一个合适的初始值。原创 2017-10-21 18:17:14 · 989 阅读 · 0 评论