c/c++学习日志
文章平均质量分 58
c/c++基础
attempt_to_do
这个作者很懒,什么都没留下…
展开
-
lambda匿名函数
lambda原创 2022-06-01 10:24:27 · 158 阅读 · 1 评论 -
理解死锁的四个条件
理解死锁的四个条件 1. 通俗的解析 //多线程死锁 void data_process1() { EnterCriticalSection(&cs1); EnterCriticalSection(&cs2); do_something1(); LeaveCriticalSection(&cs2); LeaveCriticalSection(&cs1); } void data_process2()原创 2022-03-01 16:28:56 · 667 阅读 · 0 评论 -
new A和new A()的区别详解
调用new分配的内存有时候会被初始化,而有时候不会,这依赖于A的类型是否是POD(Plain old data)类型,或者它是否是包含POD成员、使用编译器生成默认构造函数的类。 什么是POD类型 维基百科给出了更加详细的解释: C++的POD类型或者是一个标量值,或者是一个POD类型的类。POD class没有用户定义的析构函数、拷贝构造函数和非静态的非POD类型的数据成员。而且,POD class必须是一个aggregate,没有用户定义的构造函数,没有私有的或者保护的非静态数据,没有基类或虚函数。它只原创 2021-10-29 09:58:37 · 583 阅读 · 0 评论 -
POD类型详解
认识POD POD全称Plain Old Data,P属性表示这个类型是个平凡的类型。C++11中将POD划分为两个基本概念:平凡的(trival)和标准布局(standardlayout)。 平凡性 具备一下4个特征 具有平凡的默认构造函数 具有平凡的拷贝构造函数和移动构造函数。 具有平凡的拷贝赋值运算符和移动赋值运算符 不包含虚函数和虚基类 C++11提供了一个类模板来帮我们识别一个类是否是平凡的: template <typename T>struct std::is_trival原创 2021-10-29 09:50:58 · 1313 阅读 · 0 评论 -
异常处理(try和catch)
程序的三种错误 语法错误 在编译和链接阶段就能发现,只有 100% 符合语法规则的代码才能生成可执行程序。语法错误是最容易发现、最容易定位、最容易排除的错误,程序员最不需要担心的就是这种错误。 逻辑错误 编写的代码思路有问题,不能够达到最终的目标,这种错误可以通过调试来解决。 运行时错误 程序在运行期间发生的错误,例如除数为 0、内存分配失败、数组越界、文件不存在等。C++ 异常(Exception)机制就是为解决运行时错误而引入的。 运行时错误如果放任不管,系统就会执行默认的操作,终止程序运行,也就是我们原创 2021-10-11 10:43:30 · 430 阅读 · 0 评论