- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
24学时攻克c笔记
24学时攻克C++ 笔记
王琳 2009-10-27
关键字:c++ 读书笔记
开始
推荐使用编译器BCB5,VS2003,VS2008(以下均在BCB5下进行)。
以下以一个完整的C++程序来说明如何在BCB5中进行开发。
通常第一个C++程序都是从“Hello World!”开始的。
新建
编写源代码
输入源代码
以下是三种不同的命名空间和头文件的写法。
//包含输入/输出流处理的头文件
#include iostream
//加上命名空间
using namespace std;
int main(int argc, char* argv[])
{
//这里就可以直接使用cout
cout Hello Wordld!\n;
return 0;
}
//此种头文件C语言中比较多用的
//如果include头文件的时候加上.h,默认会using namespace
#include iostream.h
int main(int argc, char* argv[])
{
cout Hello Wordld!\n;
return 0;
}
//包含输入/输出流处理的头文件
#include iostream
int main(int argc, char* argv[])
{
//在调用函数的时候才指定命名空间
std::cout Hello Wordld!\n;
return 0;
}
编译
运行
查看运行结果
为了查看运行结果,我们在程序中添加了一个暂停。
结果如下:
C++程序的组成
本章仅是大体介绍了下基本概念。像预处理会在21学时再提到。
在这儿需要提醒下大家注释的位置,一般来说,对代码的注释应放在其上方,对变量的注释放在其右侧,无论如何应尽量避免在一行代码或表达式的中间插入注释。
变量和常量
无它,同样提醒下代码规范:
最好一行只定义一个变量,并且尽可能在定义变量的同时初始化该变量。
变量和常量最好尽量采用有意义的标识命名。
涉及物理状态或者含有物理意义的常量,不应直接使用数字,必须用有意义的枚举或宏来代替。
表达式和语句
注意操作符的优先级。
避免使用默认优先级,用括号明确表达式的操作顺序。这样代码看起来比较清晰。
要小心“=”和“==”……
为了调试方便,if语句的条件之后不要再写代码,作为良好的习惯,不管条件判断之后要执行的代码有几句,都用大括号括起来。
if( expression )
{
//一句也括起来
statement;
}
函数
函数声明通常与定义分别定义在.h和.cpp文件里
注意函数参数的传值和传址
函数相关代码规范
代码应格式清晰,容易维护,避免使用全局变量,inline,重载
程序流
注意死循环。
小心下标越界。
基本的类
类命名相关代码规范
公有还是私有
构造和析构
关于类的更多讲解
const的使用
头文件
指针
高级指针
指针是保持内存地址的变量。
对指针进行初始化,防范空指针和野指针。
指针的三种常见用途:管理堆中的数据;访问类成员数据和函数;按照引用把变量传递给函数。
new分配的是堆中的内存,需要明确的释放。
正确的释放内存,避免内存泄露。
const 指针。
引用
引用是对象的别名,没有像指针那样分配单独的空间。
何时是引用操作符,何时是取地址操作符。
引用要初始化,不能为空。
引用不能被重新赋值。
高级引用和指针
正确使用指针和引用作为参数让程序更有效率。
该用引用用引用,该用指针用指针。
谁分配,谁释放。
高级函数
重载后编译器根据参数的个数和类型确定调用哪个函数
析构函数不能重载
深度拷贝与浅度拷贝
操作符重载
重载前缀操作符和后缀操作符的区别。
注意返回的是引用还是值。
操作符重载的局限。
注意赋值给自己时的内存管理。
转换操作符不指定返回值。
数组
如果创建任何其他的构造函数,那就必须自己创建默认构造器。
继承和多态性
继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。
派生是一种“是”的关系。当声明类的时候,在类名称的后面写上冒号、派生的类型和从哪个类进行派生,通过这种方式指出这个类派生于哪个类。如:
class MyClass : public BaseClass
虽然一个程序不可能捕获现实中的全部信息,但是应按照适度可信的方式映射回现实来表现我们关心的领域。
protected的数据成员和函数对派生的类是完全可见的,但在其他方面与private一样。
创建和销毁实例时构造和析构的调用顺序。
覆盖是在派生类中创建与基类名称和签名都相同的方法。覆盖时会隐藏基类中所
文档评论(0)