• 从 C 到 C++
    • 学习 C++之前要先学习 C 语言吗?
    • C++类和对象到底是什么意思?
    • 如何编译和运行 C++程序?
    • C++命名空间
    • C++头文件和 std 命名空间
    • C++输入输出(cin 和 cout)
    • C++变量的定义位置
    • C++布尔类型(bool)
    • C++中的 const 又玩出了新花样
    • new 和 delete 运算符简介
    • C++内联函数
    • 内联函数也可以用来代替宏
    • 如何规范地使用内联函数
    • C++函数的默认参数
    • 到底在什么地方指定默认参数
    • C++函数重载详解
    • 函数重载过程中的二义性和类型转换
    • 如何实现 C++和 C 的混合编程?
  • 类和对象
    • C++类的定义和对象的创建
    • C++类的成员变量和成员函数
    • 类成员的访问权限以及类的封装
    • C++对象的内存模型
    • C++函数编译原理和成员函数的实现
    • C++构造函数
    • C++构造函数初始化列表
    • C++析构函数
    • C++对象数组(数组的每个元素都是对象)
    • C++成员对象和封闭类
    • this 指针
    • C++静态成员变量
    • C++静态成员函数
    • const 成员变量和成员函数
    • const 对象
    • C++友元函数和友元类
    • 类其实也是一种作用域
    • class 和 struct 的区别
    • string(C++字符串)
    • string 的内部究竟是什么样的
    • 本章小结,拿去做笔记吧
  • C++引用
    • C++引用 10 分钟入门教程
    • C++引用在本质上是什么,它和指针到底有什么区别?
    • C++引用不能绑定到临时数据
    • 编译器会为 const 引用创建临时变量
    • const 引用与转换类型
  • 继承与派生
    • C++继承和派生简明教程
    • C++三种继承方式
    • C++继承时的名字遮蔽问题
    • C++类继承时的作用域嵌套,破解 C++继承的一切秘密!
    • C++继承时的对象内存模型
    • C++基类和派生类的构造函数
    • C++基类和派生类的析构函数
    • C++多继承(多重继承)
    • C++多继承时的对象内存模型
    • 借助指针突破访问权限的限制,访问 private、protected 属性的成员变量
    • C++虚继承和虚基类详解
    • C++虚继承时的构造函数
    • C++虚继承下的内存模型
    • C++向上转型
    • 将派生类指针赋值给基类指针时到底发生了什么?
  • C++多态与虚函数
    • C++多态和虚函数快速入门教程
    • C++虚函数注意事项以及构成多态的条件
    • C++虚析构函数的必要性
    • C++纯虚函数和抽象类
    • C++虚函数表精讲教程,直戳多态的实现机制
    • typeid 运算符:获取类型信息
    • RTTI 机制精讲(C++运行时类型识别机制)
    • C++静态绑定和动态绑定,彻底理解多态
    • RTTI 机制下的对象内存模型(透彻)
  • 运算符重载
    • C++运算符重载基础教程
    • 运算符重载时要遵循的规则
    • C++重载数学运算符
    • 到底以成员函数还是全局函数(友元函数)的形式重载运算符
    • C++重载>>和<<
    • C++重载[]
    • C++重载++和--
    • C++重载 new 和 delete
    • C++重载()
    • 注意事项以及汇总
  • 模板
    • C++函数模板入门教程
    • C++类模板入门教程
    • 大话 C++模板编程的来龙去脉
    • C++函数模板的重载
    • C++函数模板的实参推断
    • C++模板的显式具体化
    • C++模板中的非类型参数
    • C++模板的实例化
    • 将 C++模板应用于多文件编程
    • C++模板的显式实例化
    • C++类模板与继承
    • C++类模板与友元
    • C++类模板中的静态成员
  • C++异常
    • C++异常处理入门
    • C++异常类型以及多级 catch 匹配
    • throw(抛出异常)
    • exception 类
  • 面向对象进阶
    • C++拷贝构造函数(复制构造函数)
    • 到底什么时候会调用拷贝构造函数?
    • C++深拷贝和浅拷贝
    • C++重载=(赋值运算符)
    • C++拷贝控制操作(三/五法则)
    • C++转换构造函数
    • C++类型转换函数
    • 再谈 C++转换构造函数和类型转换函数(进阶)
    • C/C++类型转换的本质(经典之作)
    • C++四种类型转换运算符
  • 输入输出流
    • 什么是流,C++输入流和输出流
    • C++输出单个字符
    • C++输出字符串
    • cout.tellp() 和 cout.seekp() 方法
    • cout 格式化输出
    • C++怎样对输入输出重定向?(3 种方法)
    • C++如何管理输出缓冲区?
    • C++读取单个字符
    • C++读入一行字符串
    • C++如何跳过(忽略)指定字符?
    • C++怎样查看输入流中的下一个字符?
    • cin 是如何判断输入结束(读取结束)的?
    • C++处理输入输出错误
  • 文件操作
    • 文件到底是什么?
    • C++文件类(文件流类)及用法详解
    • C++文件的打开
    • 文本打开方式和二进制打开方式的区别是什么?
    • close() 关闭文件方法详解
    • C++打开的文件一定要用 close() 方法关闭!
    • C++文本文件读写操作详解
    • read() 和 write() 读写二进制文件
    • get() 和 put() 读写文件详解
    • getline():从文件中读取一行字符串
    • C++移动或获取文件读写指针
  • C++多文件编程
    • C++多文件编程是什么
    • C++如何防止头文件被重复引入(3 种方法)?
    • C++命名空间如何应用在多文件编程中?
    • const 常量如何在多文件编程中使用?
    • C++多文件项目如何用 g++命令执行?
    • 读完本文,你就能彻底明白 C++多文件编程!
  • 从 C 到 C++
    • 学习 C++之前要先学习 C 语言吗?
    • C++类和对象到底是什么意思?
    • 如何编译和运行 C++程序?
    • C++命名空间
    • C++头文件和 std 命名空间
    • C++输入输出(cin 和 cout)
    • C++变量的定义位置
    • C++布尔类型(bool)
    • C++中的 const 又玩出了新花样
    • new 和 delete 运算符简介
    • C++内联函数
    • 内联函数也可以用来代替宏
    • 如何规范地使用内联函数
    • C++函数的默认参数
    • 到底在什么地方指定默认参数
    • C++函数重载详解
    • 函数重载过程中的二义性和类型转换
    • 如何实现 C++和 C 的混合编程?
  • 类和对象
    • C++类的定义和对象的创建
    • C++类的成员变量和成员函数
    • 类成员的访问权限以及类的封装
    • C++对象的内存模型
    • C++函数编译原理和成员函数的实现
    • C++构造函数
    • C++构造函数初始化列表
    • C++析构函数
    • C++对象数组(数组的每个元素都是对象)
    • C++成员对象和封闭类
    • this 指针
    • C++静态成员变量
    • C++静态成员函数
    • const 成员变量和成员函数
    • const 对象
    • C++友元函数和友元类
    • 类其实也是一种作用域
    • class 和 struct 的区别
    • string(C++字符串)
    • string 的内部究竟是什么样的
    • 本章小结,拿去做笔记吧
  • C++引用
    • C++引用 10 分钟入门教程
    • C++引用在本质上是什么,它和指针到底有什么区别?
    • C++引用不能绑定到临时数据
    • 编译器会为 const 引用创建临时变量
    • const 引用与转换类型
  • 继承与派生
    • C++继承和派生简明教程
    • C++三种继承方式
    • C++继承时的名字遮蔽问题
    • C++类继承时的作用域嵌套,破解 C++继承的一切秘密!
    • C++继承时的对象内存模型
    • C++基类和派生类的构造函数
    • C++基类和派生类的析构函数
    • C++多继承(多重继承)
    • C++多继承时的对象内存模型
    • 借助指针突破访问权限的限制,访问 private、protected 属性的成员变量
    • C++虚继承和虚基类详解
    • C++虚继承时的构造函数
    • C++虚继承下的内存模型
    • C++向上转型
    • 将派生类指针赋值给基类指针时到底发生了什么?
  • C++多态与虚函数
    • C++多态和虚函数快速入门教程
    • C++虚函数注意事项以及构成多态的条件
    • C++虚析构函数的必要性
    • C++纯虚函数和抽象类
    • C++虚函数表精讲教程,直戳多态的实现机制
    • typeid 运算符:获取类型信息
    • RTTI 机制精讲(C++运行时类型识别机制)
    • C++静态绑定和动态绑定,彻底理解多态
    • RTTI 机制下的对象内存模型(透彻)
  • 运算符重载
    • C++运算符重载基础教程
    • 运算符重载时要遵循的规则
    • C++重载数学运算符
    • 到底以成员函数还是全局函数(友元函数)的形式重载运算符
    • C++重载>>和<<
    • C++重载[]
    • C++重载++和--
    • C++重载 new 和 delete
    • C++重载()
    • 注意事项以及汇总
  • 模板
    • C++函数模板入门教程
    • C++类模板入门教程
    • 大话 C++模板编程的来龙去脉
    • C++函数模板的重载
    • C++函数模板的实参推断
    • C++模板的显式具体化
    • C++模板中的非类型参数
    • C++模板的实例化
    • 将 C++模板应用于多文件编程
    • C++模板的显式实例化
    • C++类模板与继承
    • C++类模板与友元
    • C++类模板中的静态成员
  • C++异常
    • C++异常处理入门
    • C++异常类型以及多级 catch 匹配
    • throw(抛出异常)
    • exception 类
  • 面向对象进阶
    • C++拷贝构造函数(复制构造函数)
    • 到底什么时候会调用拷贝构造函数?
    • C++深拷贝和浅拷贝
    • C++重载=(赋值运算符)
    • C++拷贝控制操作(三/五法则)
    • C++转换构造函数
    • C++类型转换函数
    • 再谈 C++转换构造函数和类型转换函数(进阶)
    • C/C++类型转换的本质(经典之作)
    • C++四种类型转换运算符
  • 输入输出流
    • 什么是流,C++输入流和输出流
    • C++输出单个字符
    • C++输出字符串
    • cout.tellp() 和 cout.seekp() 方法
    • cout 格式化输出
    • C++怎样对输入输出重定向?(3 种方法)
    • C++如何管理输出缓冲区?
    • C++读取单个字符
    • C++读入一行字符串
    • C++如何跳过(忽略)指定字符?
    • C++怎样查看输入流中的下一个字符?
    • cin 是如何判断输入结束(读取结束)的?
    • C++处理输入输出错误
  • 文件操作
    • 文件到底是什么?
    • C++文件类(文件流类)及用法详解
    • C++文件的打开
    • 文本打开方式和二进制打开方式的区别是什么?
    • close() 关闭文件方法详解
    • C++打开的文件一定要用 close() 方法关闭!
    • C++文本文件读写操作详解
    • read() 和 write() 读写二进制文件
    • get() 和 put() 读写文件详解
    • getline():从文件中读取一行字符串
    • C++移动或获取文件读写指针
  • C++多文件编程
    • C++多文件编程是什么
    • C++如何防止头文件被重复引入(3 种方法)?
    • C++命名空间如何应用在多文件编程中?
    • const 常量如何在多文件编程中使用?
    • C++多文件项目如何用 g++命令执行?
    • 读完本文,你就能彻底明白 C++多文件编程!