Effective C++
文章平均质量分 94
Effective C++:改善程序与设计的55个具体做法(第3版中文版)学习笔记
举个栗子2
更多笔记关注wx公众号:cpp读书笔记
展开
-
Effective C++ 第三版 学习总结(六)继承与面向对象
virtual函数和non-virtual函数,对继承来的non-virtual函数进行重新定义是错误的(No.36),所以本节主要讨论继承一个带有默认参数的virtual函数。不要重新定义继承来的默认参数值成立的原因是,虽然虚函是动态绑定的,但是默认参数是静态绑定的,只有动态绑定的东西才应该被重写。静态绑定是在编译期决定的,又称前期绑定;动态绑定是在运行期决定的,又称后期绑定。对象的静态类型,就是它在程序中被声明时采用的类型。原创 2024-04-24 23:38:32 · 1019 阅读 · 0 评论 -
Effective C++ 第三版 学习总结(五)实现
只要我们定义了一个变量而其带有一个构造函数或析构函数,那么当程序运行到此处时,就会产生构造成本,当变量的生命周期结束时,会产生析构成本。即使变量没有被使用,这些成本依然存在。我们主观上都会避免定义不使用的变量,然而我们的代码中很有可能产生没有被使用的变量。// 变量定义太早了....//加密在上述代码中,对象encrypted并不是完全没有被使用,但是如果函数抛出了异常,它就是一个没有被使用的变量,它所消耗的资源也就浪费了。解决办法就是推迟变量encrypted// 推迟变量定义。原创 2024-04-24 23:24:59 · 779 阅读 · 0 评论 -
Effective C++ 第三版 学习总结(四)设计与声明
No.18 让接口不容易被误用No.19 把类当作类型来设计No.20 用常量引用传递代替值传递No.21 不要在需要返回对象时返回引用No.22 类的数据成员声明为privateNo.23 用非成员且非友元函数来替换成员函数No.24 如果参数要进行类型转换,该函数不能作为成员函数No.25 考虑写一个高效的swap函数。原创 2024-04-24 23:19:29 · 617 阅读 · 0 评论 -
Effective C++ 第三版 学习总结(三)资源管理
No.13 使用对象来管理资源No.14 注意资源管理类中的拷贝行为No.15 在资源管理类中提供对原始资源的访问gitNo.16 使用new/delete形式要对应No.17 用单独的语句来创建智能指针。原创 2024-04-24 23:14:34 · 644 阅读 · 3 评论 -
Effective C++ 第三版 学习总结(二)构造/析构/赋值运算
C++的赋值操作符可以进行链式赋值,为了实现链式赋值,赋值操作符必须返回一个指向当前对象的引用,这是C++中自定义赋值操作符应该遵循的规则。这个规则对于+=-=*=等赋值相关的操作符同样适用。int x,y,z;x=y=z=5;// 链式赋值,等效于x=(y=(z=5))public:...Widget& operator=(const Widget& rhs){ //要返回一个当前类的引用...//返回给左边的变量...this是用来指向当前对象的对象,只存在类的成员函数里。原创 2024-04-24 23:08:48 · 1060 阅读 · 0 评论 -
Effective C++ 第三版 学习总结(一) 习惯C++
数值常量:对于数值类型的常量,可以通过定义一个全局常量来对#define进行替换,如替换。常量指针:由于常量定义通常被放在头文件中以便被不同的源码包含,因此需要把指针以及指针指向的数据都定义位const,如。类的常量:对于类中的常量成员,为了保证其能被类的对象访问到,又不会生成多个拷贝,需要将其声明为静态常量,即private://静态成员变量,属于类不会在实例化过程中产生拷贝;const成员,不能进行赋值操作。原创 2024-04-24 23:00:36 · 715 阅读 · 0 评论