C++面向对象程序设计谭浩强版复习总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章C++ 基础

endl 换行并刷新输出流

setw(n) 设置字段位数为n

hex,oct,dec 十六进制,八进制,十进制表示

setfill 定义填充字符

setprecision 定义浮点数的精度

left,right 左对齐,右对齐

showpoint 强制显示小数点以及全部尾部0

C++通过给常量命名的方式定义常量:

const<数据类型名><常量名>=<表达式>

用const定义的标识符常量时,一定要对其初始化。在说明时进行初始化是对这种常量置值的唯一方法,不能用赋值运算符对这种常量进行赋值。

函数声明的一般形式为

函数类型函数名(参数表)

函数模板的定义

template

函数定义

例子:template

T max(T a,T b){

return(a>b)? a:b;

}

定义函数模板时可以使用多个类型参数,每个类型参数前面只需加上关键字typename或class,用逗号分隔:

template

例子:template

T1 max(T1 a,T2 b){

return (a>b) ? a : (T1)b;

}

有默认参数的函数:实参与形参的结合是从左至右进行的,因此指定默认值的参数必须放在形参列表中的最右端

引用

定义对变量起另外一个名字 (别名alias),这个名字称为该变量的引用。

<类型> &<引用变量名> = <原变量名>;

其中原变量名必须是一个已定义过的变量。如:

int max ;

int &refmax=max;

refmax并没有重新在内存中开辟单元,只是引用max的单元。max与refmax在内存中占用同一地址,即同一地址两个名字。

对引用类型的变量,说明以下几点:

1、引用在定义的时候要初始化

2、对引用的操作就是对被引用的变量的操作。

3、引用类型变量的初始化值不能是一个常数。

4、一旦引用被声明,它就不能再指向其它的变量。

5、对引用的初始化,可以用一个变量名,也可以用另一个引用。

6、引用同变量一样有地址,可以对其地址进行操作,即将其地址赋给一指针。

当&m的前面有类型符时(如int &m),它必然是对引用的声明;如果前面无类型符(如cout<<&m),则是取变量的地址。

7、对常量(用const声明)的引用使用如下方式:

int i=5;

const int &a=i;

内联函数定义的一般格式为:

inline <函数值类型> <函数名>(<参数表>)

{

<函数体>

}

作用域运算符

::a表示全局作用域中的变量a。注意:不能用::访问函数中的局部变量

new运算从堆中分配一块与<类型>相适应的大小为<元素个数>的数组存储空间,若分配成功,将这块存储空间的起始地址存入<指针变量名>,否则置<指针变量名>的值为NULL(空指针值,即0)。new的使用格式为:

<指针变量名>=new <类型>[<元素个数>];

delete运算符用来释放<指针变量名>指向的动态存储空间。使用格式如下:

delete <指针变量名> 或

delete[] <指针变量名>

第2章面向对象基本概念

面向过程编程与面向对象编程的区别:

面向过程编程先确定算法,再确定数据结构;

面向对象编程先确定数据结构,再确定运算。

类定义:

class <类名>

{

<访问控制符>:

<成员函数的声明>

<访问控制符>:

<数据成员的声明>

};

<成员函数的实现>

若在类体外实现,则需要使用作用域运算符“::”,用它来标识某个成员函数是属于哪个类的,其定义格式如下:

<函数值类型> <类名>::<成员函数名>(<参数表>)

{

<函数体>

}

类外访问对象中的成员可以有3种方法:

通过对象名和成员运算符访问对象中的成员。

<对象名>.<公有成员>

通过指向对象的指针变量访问对象中的成员。

<对象指针名> -> <公有成员>

通过对象的引用访问对象中的成员。

析构函数其定义格式如下:

<类名>::~<类名>()

{

<函数体>

}

在一般情况下,调用构造函数与声明对象的顺序相同,而调用析构函数的次序正好与创建对象的顺序相反。

三种构造函数

Box(); 静态成员>

<类名>::<静态成员>

静态成员函数就是使用static关键字声明的成员函数。

静态成员函数可以直接访问该类的静态成员,但不能直接访问类中的非静态成员。

第3章详解对象

对象指针就是用于存放对象数据起始地址的变量。

声明对象指针的一般格式为:

<类名> *<对象指针名>;

对象指针的初始化一般格式为:

<数据类型> *<对象指针名>=&<对象名>;

<对象指针名>=&<对象名>;

通过指针访问对象成员一般格式如下:

<对象指针名> -> <公有成员>

boxp->volumn();

(*<对象指针名>).<公有成员>

(*boxp).volumn();

this指针是一个特殊的隐含指针,它隐含于每一个成员函数(静态成员函数除外)中,也就是说,每个成员函数都有一个this指针参数。

this指针指向调用该函数的对象,即this指针的值是当前被调用的成员函数所在的对象的起始地址。

复制构造函数中隐含使用this指针:

TAdd(const TAdd& p)

{

this->x=; this->y=;

cout<<"copy constructor."<

}

同样也可以使用*this来标识调用该成员函数的当前对象。

相关文档
最新文档