高质量C++编程学习笔记

高质量C++编程学习笔记

ID:38482240

大小:71.00 KB

页数:7页

时间:2019-06-13

高质量C++编程学习笔记_第1页
高质量C++编程学习笔记_第2页
高质量C++编程学习笔记_第3页
高质量C++编程学习笔记_第4页
高质量C++编程学习笔记_第5页
资源描述:

《高质量C++编程学习笔记》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、普通程序员应该做到:(1)知错就改;(2)经常温故而知新;(3)坚持学习,天天向上。C++/C程序通常分为两个文件:1.Declaration保存程序的声明(.h)2.Implementation保存程序的实现(.c)头文件的作用:通过头文件来调用库功能;加强类型安全检查。头文件一般保存于include目录,定义文件按保存于source目录。版式:一行代码值做一件事情。尽可能在定义变量的同时初始化该变量。代码行最大长度宜控制在70至80字符以内。类的版式:以行为为中心,重点关注是类应该提供什么样的接口(服务),public类型的函数写在前面,private类型的数据

2、写在后面。命名规则:匈牙利法:在变量和函数名中加入前缀以增进人们对程序的理解。(ppch:指向字符指针的指针)Windows应用程序的标示符通常采用大小写混排的方式,如AddChildUnix应用程序的标示符通常采用小写加下划线的方式,如add_child.表达式与基本语句(别用隐含错误的方式写代码)不可将布尔变量直接与TRUE,FALSE或者1,0进行比较,不同编译器的bool值是不同的不可将浮点变量用“==”或“!=”与任何数字比较,因为有精度限制。应当将指针变量用“==”或“!=”与NULL比较。循环语句的效率(降低循环的复杂性)多重循环中,如有可能,应当将最

3、长的循环放在最内层。如果循环体内存在逻辑判断,并且循环次数很大,最好将逻辑判断移到循环体外面。Switch语句存在的理由:多分支选择语句,虽然可以用嵌套if语句来实现多分支选择,但那样程序冗长难读。Switch语句中每个case语句不要忘了加break。不要忘记default分支,即使不需要,也要保留default:break;常量:值在运行期间恒定不变。C语言中用#define来定义常量(称为宏常量),c++中除了#define外,还可以用const来定义常量(const常量)。Const与#define比较:const优点:1.const常量有数据类型,宏常量没

4、有数据类型。2.有些集成化的调试工具可以对const常量进行调试,但不能对宏常量调试●在c++中只使用const常量而不使用宏常量。需要对外公开的常量放在头文件中,不需要对外公开的常量放在定义文件的头部。为便于管理,可以把同模块的常量集中存放在一个公共的头文件中。类中的常量:只能用枚举常量来实现!▲Const数据成员只在某个对象生存期内是常量,而对整个类而言却是可变的,因为类可以创建多个对象,不同的对象其const数据成员的值可以不同。▲不能在类声明中初始化const数据成员,因为类的对象未被创建时,编译器不知道值是什么。▲Const数据成员的初始化,只能在类构造函

5、数的初始化表中实现。函数设计函数接口的两个要素是参数和返回值:C语言中,函数的参数和返回值的传递方式有两种;值传递和指针传递,c++多了引用传递。引用传递:性质像指针传递,而使用方式却像值传递。参数的规则:参数的书写要完整,如果函数没有参数,用void填充。参数命名要恰当,顺序要合理。(目的参数放在前面,源参数放在后面)。如果参数是指针,且仅作输入用,应在类型前加const,以防止该指针在函数体外被修改。如果输入参数以值传递的方式传递对象,宜改用“const&”,省去零时对象的构造和析构过程,提高效率。参数个数尽量控制在5个以内。尽量不要使用类型和数目不确定的参数。

6、返回值的规则:不要省略返回值的类型。函数名字和返回者类型在语义上不可冲突。(getchar其实int类型,而不是char类型)不要将正常值和错误标志混在一起返回,正常值用输出参数获得,错误标志用return语句返回。有时候函数原本不需要返回值,但为了增加灵活性,可以附加返回值。函数内部实现的规则:(在函数体的入口处和出口处把关)在函数体的入口处,对参数的有效性进行检查,从分理解并正确使用“断言”(assert)●在函数体的出口处,对return语句的正确性和效率进行检查。1.return语句不可返回指向“栈内存”的指针或者引用,因为该内存在函数体结束时被自动销毁。2

7、.搞清楚返回的究竟是值,指针还是引用。3.如果函数返回值是一个对象,要考虑return语句的效率。4.函数体功能要单一,不要设计多用途的函数;函数体的规模要小,尽量控制在50行代码以内;尽量避免函数带有“记忆”功能。Debug版本release版本的区别:debug版本用于内部调试,release版本发型给用户使用。断言assert是仅在debug版本起作用的宏,用于检查“不应该”发生的情况。使用断言捕捉不应该发生的非法情况;在函数的入口处,使用断言检查参数的有效性。引用与指针的比较引用是c++中的概念。1.引用被创建的同时必须被初始化(指针则可以在任何时候被初

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。