C++避坑指南
小猪大侠
这个作者很懒,什么都没留下…
展开
-
c++ 避坑指南三, 单例类的析构函数是否执行分析
2.法一, 对象是new出来的。c++ 自己new出来的对象,需要自己释放。1. 法二,利用栈上内存,离开作用域会执行析构函数。对于, 要执行析构函数的单例类,要用第二种写法。单例的写法有一下两种。原创 2023-06-15 16:14:02 · 172 阅读 · 0 评论 -
c++避坑指南二:基类调用虚函数
所以 base构造的时候,用的是base类的虚函数指针, 所以base类调用构造函数时调用的是自己的函数base::init。mian中 d.doSomething, 此时d对象已经构造完成, 调用的是自己的虚函数。是的,base(){init();} 此种情况不会调用 子类的 虚函数。1. derive 对象d先执行base的构造函数,再执行derive构造函数。2. 构造base的时候,derive 对象d还没拿到自己的虚函数表的指针。原创 2022-11-24 11:27:15 · 712 阅读 · 1 评论 -
c++避坑指南一:lambda表达式的延迟调用
原因分析: 在funaa定义的时候[=] 是捕获外部作用域中的所有变量,并作为副本在函数体中使用。在定义的瞬间,已经完成了捕获动作, aa的值已经复制到funaa 函数体中。后面对aa的修改不会 影响到funaa 当时捕获到的值。所以funaa 返回的仍然是0;当想要在调用funaa时即时获取外部变量aa的值,应该用引用捕获 [&]。原创 2022-11-24 10:55:09 · 389 阅读 · 0 评论