当前位置:首页 > 《C++面向对象程序设计》谭浩强版复习总结
第一章 C++ 基础
endl 换行并刷新输出流
setw(n) 设置字段位数为n
hex,oct,dec 十六进制,八进制,十进制表示 setfill 定义填充字符
setprecision 定义浮点数的精度 left,right 左对齐,右对齐
showpoint 强制显示小数点以及全部尾部0 C++通过给常量命名的方式定义常量: const<数据类型名><常量名>=<表达式>
用const定义的标识符常量时,一定要对其初始化。在说明时进行初始化是对这种常量置值的唯一方法 ,不能用赋值运算符对这种常量进行赋值。 函数声明的一般形式为
函数类型 函数名(参数表) 函数模板的定义
template
例子:template
定义函数模板时可以使用多个类型参数,每个类型参数前面只需加上关键字typename或class,用逗号分隔: template
有默认参数的函数:实参与形参的结合是从左至右进行的,因此指定默认值的参数必须放在形参列表中的最右端 引用
定义 对变量起另外一个名字 (别名alias),这个名字称为该变量的引用。 <类型>&<引用变量名> = <原变量名>;
其中原变量名必须是一个已定义过的变量。如: int max ;
int &refmax=max;
1
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
第2章 面向对象基本概念
面向过程编程与面向对象编程的区别:
面向过程编程先确定算法,再确定数据结构; 面向对象编程先确定数据结构,再确定运算。 类定义:
class <类名> {
<访问控制符>: <成员函数的声明> <访问控制符>: <数据成员的声明> };
<成员函数的实现>
若在类体外实现,则需要使用作用域运算符“::”,用它来标识某个成员函数是属于哪个类的,其定义格式如下:
<函数值类型><类名>::<成员函数名>(<参数表>) {
<函数体> }
类外访问对象中的成员可以有3种方法: 通过对象名和成员运算符访问对象中的成员。 <对象名>.<公有成员>
通过指向对象的指针变量访问对象中的成员。 <对象指针名> -><公有成员> 通过对象的引用访问对象中的成员。 析构函数其定义格式如下: <类名>::~<类名>() {
<函数体> }
在一般情况下,调用构造函数与声明对象的顺序相同,而调用析构函数的次序正好与创建对象的顺序相反。 三种构造函数
Box(); //无参构造函数 Box(int h,int w ,int len)
3
:height(h),width(w),length(len){} //带参构造函数 复制构造函数定义
<类名>(<参数表>); <类名>(const <类名>&<对象名>) Box(const Box& b);//复制构造函数
复制构造函数只有一个参数,并且是对同类对象的引用。
静态成员是类的所有对象共享的成员,而不是某个对象的成员,它在对象中不占存储空间,是属于整个类的成员。 静态成员定义格式如下: static <静态成员的定义>;
不能用参数初始化表对静态数据成员初始化,也不能在构造函数体内初始化,静态数据成员只能在类体外进行初始化。 静态数据成员初始化格式如下:
<数据类型><类名>::<静态数据成员名>=<值>;
在类的成员函数中可以直接访问该类的静态数据成员,而不必使用成员访问运算符或类名限定修饰符。
在类外必须使用成员访问运算符或类名限定修饰符访问公共静态数据成员。 <对象名>.<静态成员> <类名>::<静态成员>
静态成员函数就是使用static关键字声明的成员函数。
静态成员函数可以直接访问该类的静态成员,但不能直接访问类中的非静态成员。
4
共分享92篇相关文档