C++ class默认生成的函数

一般情况下,编译器会生成以下函数: default构造函数 复制构造函数 重载赋值操作符 析构函数 这些函数并不是都会生成,而是当这些函数被调用,而又没有明确定义的情况下,编译器才会生成相应的函数 default构造函数 当没有明确定义构造函数时生成,但是只有明确定义了构造函数(无... 阅读全文

类与类的关系

依赖关系 假设B类的变化引起了A类的变化,则说明A类依赖于B类。 依赖关系通常表现为下面三种情形: B类是A类中的(某中方法的)局部变量; B类是A类方法当中的一个参数;(大多数情况) B类向A类发送消息,从而影响B类发生变化; 在UML类图设计中,依赖关系用由类A指向类B的带箭... 阅读全文

协程与libco

协程是一种轻量级的用户态线程。 协程的优点 首先看看同步和异步编程的优点 同步编程优缺点: 优点:逻辑清晰,开发简单 缺点:吞吐量低,时延大 异步编程优缺点: 优点:吞吐量高,时延小 缺点:逻辑分散,开发复杂 协程同时拥有同步和异步编程的优点,可以实现同步编程,异... 阅读全文

利用状态机解决问题

概念 状态机是软件编程中的一个重要概念。比这个概念更重要的是对它的灵活应用。在一个思路清晰而且高效的程序中,必然有状态机的身影浮现。 比如说一个按键命令解析程序,就可以被看做状态机:本来在A状态下,触发一个按键后切换到了B状态;再触发另一个键后切换到C状态,或者返回到A状态。这就是最简... 阅读全文

C/C++头文件和库文件查找规则

头文件 #include “headfile.h” 搜索顺序为: 先搜索当前目录 然后搜索-I指定的目录 再搜索gcc的环境变量CPLUS_INCLUDE_PATH(C语言使用的是C_INCLUDE_PATH,Object-C文件是OBJC_INCLUDE_PATH) 最后搜索gc... 阅读全文