Effective C++ 条款8 析构函数的异常管理 条款08 : 别让异常逃离析构函数 日常编程中,常见异常通常由以下原因引发: 资源管理不当(如内存泄漏, 文件操作, 连接或断开连接失败)。 边界和合法性检查不足(如数组越界、除以零)。 并发编程问题(如死锁、数据竞争)。 类型不匹配或错误的操作。 本条款主要讨论的是析构函数的异常管理, 为什么会不希望异常逃离析构函数, 因为析构函数是一个必须执行且有可能失败的函数, 因为内存泄漏, 文件操 2024-11-30 #Effective C++
Effective C++ 条款7 virtual析构函数 条款07 : 为多态基类声明virtual析构函数 说到多态, 我们应当非常了解其运行时绑定的机制, 简单来说就是我们可以在任何时候根据用户的需求将基类绑定为不同的派生类, 用相同的操作实现不同的效果, 这其中virtual函数起到了至关重要的作用, 每一个含有虚函数的类都会维护一个虚表, 以此实现基类到派生类的动态绑定. 这里书中提到了一个重要又经常发生的问题 : 如果drived clas 2024-11-30 #Effective C++
Effective C++ 条款5-6 默认成员函数 条款05 了解C++默默编写并调用哪些函数 编译器会默认为class创建default构造函数, 析构函数, copy构造函数, 赋值操作符重载, 这算是我们C++语言基础学习中的重中之重, 这里就不再过多阐释. 书中提出一点 : 如果我们在实际使用中确实没有使用到某些默认成员函数, 编译器很大可能也不会自动创建对应的默认函数(例如copy构造函数, 赋值操作符重载). 书中还提出了三种编译器 2024-11-30 #Effective C++
Effective C++ 条款4 初始化 条款04 确定对象被使用前已先被初始化 本条讨论如何安全高效地实现初始化, 当然也有一些条件奇葩的初始化值得我们去讨论 普通变量初始化12345int x = 0;cont char text[] = "hello";double d;cin >> d; // 这种也叫初始化 类内变量初始化类内变量的初始化一般就是三种, 类内设置初始值, 缺省值 , 初始 2024-11-29 #Effective C++
Effective C++ 条款3 const 条款03 : 尽可能使用const const(不可被改动), 是一种非常有效且多样的语义约束, 有了这项约束, 我们可以借用编译器之手规范我们的代码, 以免带来意想不到的错误, 毕竟任何的改动都会伴随着一定的风险, 如果可以提前规避, 我们何乐而不为呢? const在实际表现上是多才多艺的, 他可以修饰对象, 对象指针, 甚至成员函数, 接下来逐一介绍 : const 修饰变量1const 2024-11-29 #Effective C++
Effective C++ 条款1-2 条款01 : 视C++为一个语言联邦 不像Java对各种资源都进行了整合内聚, C++更像是由四种次语言组合而成的语言联邦, 每种次语言都有自己的规约, 也都有不同的用武之地, 每个都可以给C++这门语言带来独特的优势. C : C++的基础, 包含指针/内置数据类型等基础思想. Object-Oriented C++ : 面向对象编程的核心, 实现封装/继承& 2024-11-29 #Effective C++