
C++
C++开发过程中遇到的问题汇总,bug收集
david2code
Keep Coding,Keep Foolish!
展开
-
C++ copy elision
c++14。原创 2024-05-29 19:46:08 · 1041 阅读 · 0 评论 -
从gcc9.4升级到gcc13.2后,使用c++20编译生成可执行文件运行时报错
libstdc++库版本太低,需要升级。一般前面升级gcc时已经安装了最新的libstdc++,只是没有配置系统环境变量,导致程序运行时找到的是旧的库。原创 2024-05-20 20:15:13 · 473 阅读 · 0 评论 -
C++ 临时变量
一般编译器会使用copy elision 在调用处原地构造此对象。原创 2024-04-24 18:13:59 · 625 阅读 · 0 评论 -
不能在子类的初始化列表中初始化父类的成员
子类要想在初始化列表中初始化父类的成员变成,正确的做法是调用其父类的构造函数。原创 2024-04-16 19:38:56 · 374 阅读 · 0 评论 -
类继承时,由于未注意基类和派生类的构造函数调用顺序导致的异常
构造派生类时,先构造基类。上面代码中,将派生类的成员变量传递给基类,此时,派生类还没有构造,因此传递的东西是未知的。原创 2024-04-09 19:59:22 · 187 阅读 · 0 评论 -
同一个类构造函数之间相互调用导致的异常
【代码】同一个类构造函数之间相互调用导致的异常。原创 2024-03-27 20:18:17 · 182 阅读 · 0 评论 -
隐形类型转换,生成临时变量导致的bug
这时,由于GUEST是char*类型,而func2参数类型为std::string,因此func2在调用时触发隐式类型转换,生成一个临时的std::string变量。上面代码func3的参数是lambda函数,func3对这个lambda函数并不会立即调用,而是等到func1返回后一段时间后才调用,即异步调用lambda函数。上面代码中func3是异步调用,其中的lambda函数会在异步调用成功时被调用。因此当func1函数运行结束并返回时,func3中的lambda函数并没有执行。原创 2024-03-23 11:25:16 · 343 阅读 · 0 评论