RAII思想
摘要:c++ RAII思想 什么是RAII 资源获取即初始化(Resource Acquisition Is Initialization,简称 RAII)是一种 C++ 编程技术,它将在使用前获取(分配的堆内存、执行线程、打开的套接字、打开的文件、锁定的互斥量、磁盘空间、数据库连接等有限资源)的资源的生
阅读全文
调试工具
摘要:调试工具 Core Dump + GDB 定位 segment fault Core dump是Linux提供的一种非常实用的程序调试手段,在程序异常终止时,Linux会把程序的上下文信息记录在一个core文件中,然后可以利用GDB等调试工具对core文件进行离线调试。 很多系统中,根据默认配置,程
阅读全文
C++单例模式
摘要:C++单例模式 使用单例模式的理由 在开发过程中,很多时候一个类我们希望它只创建一个对象,比如:线程池、缓存、网络请求等。当这类对象有多个实例时,程序就可能会出现异常,比如:程序出现异常行为、得到的结果不一致等。 单例主要有这两个优点: 提供了对唯一实例的受控访问。 由于在系统内存中只存在一个对象,
阅读全文
模板
摘要:模板 可变参数模板 可变参数模板(Variadic Templates)是C++11引入的一种强大特性,它允许模板接受可变数量的模板参数或函数参数。可变参数模板为编写通用性更强的代码提供了极大的灵活性,特别是在处理多种类型或不确定数量的参数时。 模板参数包 定义:template<typename.
阅读全文
C++继承基础
摘要:虚函数默认实参 C++默认实参是靠编译器实现的,因此默认实参不参与动态绑定,默认实参有静态类型决定。 访问控制 每个类分别控制自己的成员初始化过程,还分别控制其成员对于派生类来说是否可访问,友元不继承。 成员: protected:派生类可见、自己、friend可见 public:所有可见 priv
阅读全文
C++对象模型
摘要:C++对象模型 在C++面向对象的类中,有两种数据成员和三种成员函数: class Base{ public: Base(int i) :baseI(i){}; int getI(){ return baseI;} static void countI(){}; virtual void print
阅读全文