
C++
文章平均质量分 79
长不大的程序员
作者不懒,但什么都没写~
展开
-
C++多态、虚函数、虚函数表、编译期、运行期、静态、动态的理解
关于C++多态1. 多态分为静态多态和动态多态1.1 静态多态1.1.1函数重载1.1.2模板1.1.3静态多态总结1.2 动态多态:在运行时期才能决定函数行为1.2.1先讲一些储备知识,不然初学者听着迷糊1.2.2 多态的体现:1.2.3 动态的体现1. 多态分为静态多态和动态多态1.1 静态多态静态多态是编译期决定的:在编译期间就决定了行为,也就是在运行到静态多态的时候函数的执行流程都一样包括两种:函数重载和模板1.1.1函数重载函数重载:函数名相同且参数列表不同称为函数重载静态多态体现原创 2022-03-18 10:53:32 · 1842 阅读 · 0 评论 -
C++程序编译过程
C++程序编译过程1.编译流程图2.预处理3.编译4.汇编5.链接1.编译流程图2.预处理编译器将C程序的头文件编译进来,还有宏的替换,可以用gcc的参数-E来参看。主要处理源代码文件中的以“#”开头的预编译指令。处理规则见下1、删除所有的#define,展开所有的宏定义。2、处理所有的条件预编译指令,如“#if”、“#endif”、“#ifdef”、“#elif”和“#else”。3、处理“#include”预编译指令,将文件内容替换到它的位置,这个过程是递归进行的,文件中包含其他文件。原创 2022-02-19 15:42:08 · 4378 阅读 · 0 评论 -
C++智能指针
智能指针一、Auto_ptr二、Unique_ptr三、Share_ptr四、Weak_ptr智能指针的提出是为了解决内存泄露问题的,实现方法是利用了类在生命周期结束会自动调用析构函数,在智能指针使用的时候智能指针本身不是一个指针,他只所以能用->访问出new的类型是它内部重载了->并返回了一个type*。一、Auto_ptr是最先出的智能指针,他再后来被弃用了有一个很重要的原因:他能够通过赋值语义将内存直接交给其他智能指针,这个特性很容易导致程序崩溃,并且这个特性不符合STL的复制构造函原创 2022-01-29 20:00:59 · 698 阅读 · 0 评论 -
C++普通继承、多继承、虚继承内存空间排布分析
C++普通继承、多继承、虚继承内存空间排布分析一、普通继承二、多继承三、菱形继承四、虚继承1.部分虚继承2.完全虚继承总结一、普通继承代码class A{public: virtual void virtualfunA(){ } virtual void virtualfunAA(){ } void funA(){ }public: int a;};class B : public A{public: virtual void virtualfunA(){ }原创 2022-01-19 15:32:07 · 3580 阅读 · 0 评论