![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
junpfeng
这个作者很懒,什么都没留下…
展开
-
shared_ptr循环引用的本质
网上一般都是举个例子,说是循环引用,不易理解。循环引用的本质是内存的管理问题。引例class A{public:xxx // 省略构造等A a; // 出错};上面这种定义类的写法是错误的,在类A内定义一个A变量,定义A变量时还不知类A的具体内容和大小,肯定无法定义。class A{public:xxx // 省略构造等A * pa; // 可以};可以定义...原创 2020-04-04 14:13:29 · 295 阅读 · 0 评论 -
C/C++ 各种变量的初始化和内存分配的阶段
静态变量 全局变量(extern外部变量)和常量(const)内存分配和初始化都是在编译阶段完成。其他变量编译阶段进行内存分配,运行阶段初始化。变量作为数组长度int x = 1;int array[x] = {0}; // 出错变量作为数组长度时,不能同时进行初始化int x = 1;int array[x]; // 正确...原创 2020-03-28 23:57:31 · 1382 阅读 · 1 评论 -
C++ 初始化列表给数组初始化
一般的初始化是使用小括号()。给数组初始化是使用大括号{}。class base{char a[10];public: base():a{{}}{}}上例的初始化就相当于:a[10] = {};。原创 2020-03-27 21:32:37 · 5124 阅读 · 1 评论 -
c++ 动态多态原理
c++ 动态多态exampleclass base{ virtual void func(){}};class son:public base{ void func(){}};虚函数与虚函数表父类base定义一个虚函数后,会产生一个虚函数指针,和一个虚函数表,表内记载了虚函数和他的地址,虚函数指针则指向该虚函数表内虚函数的位置,从而获得虚函数的地址。子类继承父类子类s...原创 2020-03-24 20:41:36 · 164 阅读 · 0 评论