快乐的流畅:个人主页个人专栏:《C语言》《数据结构世界》《进击的C++》远方有一堆篝火,在为久候之人燃烧!文章目录一、虚函数与重写1.1虚函数1.2虚函数的重写1.3重写的特例1.4final和override(C++11)1.5重载、重写(覆盖)、重定义(隐藏)的对比二、多态的概念及定义2.1多态的概念2.2多态的定义三、抽象类3.1纯虚函数3.2抽象类的概念3.3接口继承与实现继承四、多态的原理4.1虚函数表4.2虚函数表的打印4.3单继承下的虚函数表4.3.1一对一4.3.2多对一4.3.3一对多4.4多继承下的虚函数表4.5多态的原理4.6静态绑定与动态绑定4.7菱形虚拟继承下的虚函数
快乐的流畅:个人主页个人专栏:《C语言》《数据结构世界》《进击的C++》远方有一堆篝火,在为久候之人燃烧!文章目录一、继承的概念及定义1.1继承的概念1.2继承的定义1.3继承方式和访问限定符1.4继承基类成员访问方式的变化二、基类和派生类对象赋值转换三、继承中的作用域四、派生类的默认成员函数4.1构造函数4.2拷贝构造函数4.3赋值重载函数4.4析构函数五、继承与友元六、继承与静态成员七、菱形继承及虚拟继承7.1菱形继承7.2虚拟继承7.2.1解决方法7.2.2原理八、继承的总结与反思一、继承的概念及定义1.1继承的概念继承(inheritance),是面向对象的三大特性之一。它是面向对象编
快乐的流畅:个人主页个人专栏:《C语言》《数据结构世界》《进击的C++》远方有一堆篝火,在为久候之人燃烧!文章目录一、泛型编程二、函数模板2.1函数模板的定义格式2.2函数模板的原理2.3函数模板的实例化2.3.1隐式实例化2.3.2显式实例化2.4模板参数的匹配原则三、类模板3.1类模板的定义格式3.2类模板的实例化四、非类型模板参数五、模板特化5.1函数模板特化5.2类模板特化5.2.1全特化5.2.2偏特化六、模板分离编译6.1分离编译的概念6.2模板的分离编译6.3解决方法总结一、泛型编程首先,来看一个问题:如何实现一个通用的交换函数呢?有人可能会说,可以用函数重载!voidSwap(
快乐的流畅:个人主页个人专栏:《C语言》《数据结构世界》《进击的C++》远方有一堆篝火,在为久候之人燃烧!文章目录一、仿函数1.1仿函数的介绍1.2仿函数的优势二、priority_queue2.1push2.2pop2.3top2.4size2.5empty三、反向迭代器3.1成员变量与默认成员函数3.2operator*3.3operator->3.4operator++3.5operator--3.6relationaloperators四、反向迭代器的适用4.1vector4.1.1rbegin4.1.2rend4.2list4.2.1rbegin4.2.2rend总结一、仿函数1.1
快乐的流畅:个人主页个人专栏:《C语言》《数据结构世界》《进击的C++》远方有一堆篝火,在为久候之人燃烧!文章目录一、容器适配器二、stack2.1push2.2pop2.3top2.4size2.5empty三、queue3.1push3.2pop3.3front3.4back3.5size3.6empty四、deque4.1deque的介绍4.2deque的底层结构4.3deque的优势与缺陷4.4为什么选择deque作为stack和queue的底层默认容器总结一、容器适配器STL并没有将stack和queue划分为容器,而是将其称为容器适配器,原因是stack和queue只是对其他容器的
快乐的流畅:个人主页个人专栏:《C语言》《数据结构世界》《进击的C++》远方有一堆篝火,在为久候之人燃烧!文章目录引言一、结点二、迭代器2.1成员变量与默认成员函数2.2operator*2.3operator->2.4operator++2.5operator--2.6relationaloperators三、list3.1成员变量3.2迭代器3.2.1begin3.2.2end3.3默认成员函数3.3.1constructor3.3.2destructor3.3.3copyconstructor3.3.4operator=3.4修改3.4.1insert3.4.2push_front3.4
快乐的流畅:个人主页个人专栏:《C语言》《数据结构世界》《进击的C++》远方有一堆篝火,在为久候之人燃烧!文章目录引言一、成员变量二、默认成员函数2.1constructor2.2destructor2.3copyconstructor2.4operator=三、迭代器3.1begin3.2end四、元素访问4.1operator[]五、容量5.1size5.2capacity5.3reserve5.4resize5.5empty六、修改6.1push_back6.2pop_back6.3insert6.4erase6.5swap总结引言关于STL容器的学习,我们来到了运用最广泛、最常见的ve
文章目录引言一、成员变量二、默认成员函数2.1constructor2.2copyconstructor2.3destructor2.4operator=三、迭代器3.1begin3.2end四、元素访问4.1operator[]五、容量5.1size5.2capacity5.3reserve5.4resize六、修改6.1push_back6.2append6.3operator+=6.4insert6.5erase6.6swap6.7clear七、操作7.1c_str7.2find八、非成员函数8.1relationaloperators8.2operator8.3operator>>总结
目录一、C/C++内存分布二、new和delete的使用方式2.1C语言内存管理2.2C++内存管理2.2.1new和delete操作内置类型2.2.2new和delete操作自定义类型三、new和delete的底层原理3.1operatornew与operatordelete函数3.2原理总结3.2.1内置类型3.2.2自定义类型四、定位new表达式(placement-new)欢迎各位小伙伴关注我的专栏,和我一起系统学习C++,共同探讨和进步哦!学习专栏:《进击的C++》一、C/C++内存分布让我们再来回顾一下,C/C++的程序内存分布,以便于我们更好地理解。【说明】栈又叫堆栈–非静态局部
目录引言入门须知一、命名空间1.1作用域限定符1.2命名空间的意义1.3命名空间的定义1.4命名空间的使用二、C++输入&输出2.1cout输出2.2cin输入2.3std命名空间的使用惯例三、缺省参数3.1缺省参数概念3.2缺省参数分类四、函数重载4.1函数重载概念4.2函数重载分类4.3C++支持函数重载的原理--名字修饰(nameMangling)五、引用5.1引用概念5.2引用特性5.3使用场景5.4传值和传引用效率对比5.5常引用5.6指针和引用的区别六、内联函数6.1内联函数概念6.2内联函数特性6.3C++替代宏的做法七、auto(C++11)7.1auto简介7.2auto的使