Effective C++
文章平均质量分 90
CCSU__LRF
破铜烂铁acmer
展开
-
Effective C++ 26 ~ 31 条款 实现 包括 尽可能延后变量定义式的出现时间 尽量少做转型动作 避免返回handle指向对象内部成分 为“异常安全”而努力是值得的
# 条款26:尽可能延后变量定义式的出现时间## 尽可能延后变量定义式的出现,这样可以增加程序的清晰度并改善程序效率。## 问题A (效率问题): ```cpp// 这个函数过早定义变量“encrypted”std::string encryptPassword(const std::string& password){ using namespace std; string encrypte原创 2023-02-20 13:00:26 · 882 阅读 · 0 评论 -
Effective C++ 18 ~ 25 设计与声明 包括让接口容易被正确使用,不易被误用 设计class犹如设计type 尽量用pass-by-reference-to-const(const引用
*所谓软件设计,是令软件做出你希望做的事的步骤和做法*# 条款18:让接口容易被正确使用,不易被误用 ## 1. 好的接口很容易被正确使用,不容易被误用。你应该在你的所有接口中努力达成这些性质。 ## 问题:```cppclass Date{public: Date(int month, int day, int year); ...};```如果调用Date() 则可能引发以下问题:- 也许会以错误的次序传递参数- 可能传递一个无效的月份或天数## 解决:导入简单的外覆原创 2023-02-18 13:01:33 · 129 阅读 · 0 评论 -
Effective C++ 13 - 17 资源管理 包括 以对象管理资源 在资源管理中小心copying行为 在资源管理类中提供对原始资源的访问 成对使用new和delete时要采用相同形式
***所谓资源就是,一旦使用了它,将来必须还给系统***‘# 条例 13 : 以对象管理资源## 1. 为防止资源泄漏,请使用RAII对象,它们在构造函数中获得资源并在析构函数中释放资源。### RAII (Resource Acquisition Is Initialization)称为“资源获取就是初始化”,如果把资源用类进行封装起来,对资源操作都封装在类的内部,**在析构函数中进行释放资源**。当定义的局部变量的生命结束时,它的析构函数就会自动的被调用,如此,就不用程序员显示的去调用释放原创 2023-02-17 15:30:10 · 76 阅读 · 0 评论 -
Effective C++ 05 ~ 12 条款 构造,析构,赋值(了解C++默默编写并调用哪些函数 若不想使用编译器自动生成的函数,就该明确拒绝 为多态基类声明virtual析构函数)
C++ 会默认声明copy构造函数,copy assignment操作符(赋值),析构函数,构造函数,当自己手工实现时,编译器则不会创建。原创 2023-02-16 19:38:21 · 73 阅读 · 0 评论 -
Effective C++ 01 ~ 04 条款 让自己习惯C++ 视C++为一个语言联邦 尽量以const,enum,inline替换#define 尽可能使用const 确定对象被使用前已被初始化
条款01 - 视C++为一个语言联邦C++ 由四个次语言构成1 . 说到底C++仍是以C为基础区块(blocks)、语句(statements)、预处理器(preprocessor)、内置数据类型(built-in data types)、数组(arrays)、指针(pointers)都来自与C## 2. Object-Oriented C++(面向对象)classes(包括构造函数和析构函数),封装(encapsulation)、继承(inheritance)、多态(polymorph原创 2023-02-16 19:34:45 · 120 阅读 · 0 评论