- 博客(3)
- 收藏
- 关注
原创 基类指针指向派生类,派生类指针指向基类(个人笔记)
原因有以下几点:当使用多态特性,让基类指针指向派生类时(不是指向 B people 定义来的people这种对象详细看下文代码),如果析构函数不是虚函数,通过基类指针销毁派生类对象时(delete pa),会调用静态绑定的析构函数,也就是基类的析构函数,从而只能销毁属于基类的元素,导致派生类析构不完全,程序就会出现资源泄露或未定义行为。
2023-12-15 21:15:48 230
原创 类的多态性原理以及new的问题(个人笔记)
在C++11中可以使用override关键字验证是否覆盖成功拥有虚函数的类,会拥有一份虚函数表,此类中所有的对象共享这一张表,这些对象内部会增加一个隐藏的成员变量:虚函数表指针,指向虚函数表。可以使用sizeof运算符观察此指针的存在当派生类继承了拥有虚函数的基类后,也会继承虚函数表,如果此时派生类覆盖了基类中的虚函数,则会修改这样表的内容为新的函数内容如果派生类中新增了新的虚函数,则会在表的尾部新增此函数每个类型对象的虚函数表指针都指向自己类的虚函数表。
2023-12-15 09:36:38 25 1
原创 C++拷贝构造函数 (个人笔记)
public:// 构造函数// 拷贝构造函数(浅拷贝)// 浅拷贝// 析构函数// 打印数据private:char* data;int main()// 调用拷贝构造函数(浅拷贝)return 0;这个例子中,类使用了浅拷贝。拷贝构造函数只是简单地将指针data的值(即地址)从源对象复制到目标对象,导致两个对象指向同一块内存。因此,当一个对象的析构函数释放内存时,另一个对象的指针就变成了悬空指针。
2023-12-15 08:59:09 29
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人