Effective C++都有哪些条款

本文总结了C++编程中应遵循的50条有效准则,包括使用const和inline、避免使用#define、采用C++风格注释等,旨在帮助开发者写出更高效、更安全的代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     其实很早以前就学了Effective C++,今天又看了下下,但是很难记住,或者说很容易忽略一些条款。so,我感觉有必要把条款在列出来一遍,呵呵,帮助自己记忆。当然,最重要的还是多多的实践,在项目中多多使用,多思考,相信自然在使用的时候就游刃有余了。

 

条款1:尽量用const 和inline 而不用#define
条款2:尽量用<iostream>而不用<stdio.h>
条款3:尽量用new 和delete 而不用malloc 和free       
条款4:尽量使用C++风格的注释

条款5:对应的new 和delete 要采用相同的形式

            delete  or  delete []

条款6:析构函数里对指针成员调用delete

条款7:预先准备好内存不够的情况

            异常不经常发生,但是一旦发生就相当危险。

条款8. 写operator new 和operator delete 时要遵循常规

条款9. 避免隐藏标准形式的new

条款10. 如果写了operator new 就要同时写operator delete

条款11: 为需要动态分配内存的类声明一个拷贝构造函数和一个赋值操作符

条款12: 尽量使用初始化而不要在构造函数里赋值

条款13: 初始化列表中成员列出的顺序和它们在类中声明的顺序相同

条款14: 确定基类有虚析构函数

条款15: 让operator=返回*this 的引用

             看看下面的语句就知道为什么了?

           w = x = y = z = "Hello";

条款16: 在operator=中对所有数据成员赋值

条款17: 在operator=中检查给自己赋值的情况

条款18: 争取使类的接口完整并且最小

 

条款19: 分清成员函数,非成员函数和友元函数

条款20: 避免public 接口出现数据成员

条款21: 尽可能使用const

条款22: 尽量用“传引用”而不用“传值”

条款23: 必须返回一个对象时不要试图返回一个引用

条款24: 在函数重载和设定参数缺省值间慎重选择

条款25: 避免对指针和数字类型重载

条款26: 当心潜在的二义性

条款27: 如果不想使用隐式生成的函数就要显式地禁止它

条款28: 划分全局名字空间

条款29: 避免返回内部数据的句柄

条款30: 避免这样的成员函数:其返回值是指向成员的非const 指针或引用,
但成员的访问级比这个函数要低

条款31: 千万不要返回局部对象的引用,也不要返回函数内部用new 初始化的
指针的引用

条款32: 尽可能地推迟变量的定义

条款33: 明智地使用内联

条款34: 将文件间的编译依赖性降至最低

条款35: 使公有继承体现 "是一个" 的含义

条款36: 区分接口继承和实现继承

条款37: 决不要重新定义继承而来的非虚函数

条款38: 决不要重新定义继承而来的缺省参数值

条款39: 避免 "向下转换" 继承层次

条款40: 通过分层来体现 "有一个" 或 "用...来实现"

条款41: 区分继承和模板

条款42: 明智地使用私有继承

条款43: 明智地使用多继承

条款44: 说你想说的;理解你所说的

条款45: 弄清C++在幕后为你所写、所调用的函数

条款46: 宁可编译和链接时出错,也不要运行时出错

条款47: 确保非局部静态对象在使用前被初始化

条款48: 重视编译器警告

条款49: 熟悉标准库

条款50: 提高对C++的认识

 

 

 

      

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值