大一下学期c++第六章总结

一、类的定义
1、类的基本思想是数据抽象和封装。
2、类要实现数据抽象和封装,需要先定义一个抽象数据类型。
3、抽象数据类型由两部分组成:一组数据和对这些数据的操作。
4、c++定义抽象数据类型,最常见的方式是采用结构体加全局函数
二、数据成员与成员函数
1、结构体内的函数被称为成员函数。
2、结构体中的数据被称为数据成员。
3、结构体被称为类。
4、结构体类型的变量被称为对象。
三、数据成员的类内初始化和成员函数的类外定义。
1、数据成员内内初始值只能放在等号“=”右边,或者放在花括号“{}”里,不能使用圆括号“()”。
2、成员函数在类外定义时,函数名字前要加类名字和作用域符“::”,表示这个函数是在其所属的类作用域内,是这个类的成员函数,不同于全局函数。
例如:
struct Salesdata{…};
double Salesdata::read(){…}
四、访问控制和封装
1、访问限定符: public(公有成员声明)
private(私有成员声明)
protected(被保护成员声明)
2、class中的成员,若无访问限定符,则默认为private;struct中的成员,若无访问限定符,则默认为public
五、this指针
1、this这真是一个常量,含有当前实施调用的对象的地址,不能改变this指针的值,也不能取this指针的地址。
六、访问器和修改器
1、为了较好的封装对象,更好的做法是将数据成员限定为private,并提供public成员函数对其进行访问,这种成员函数被称为访问器和修改器。
2、数据成员的XX访问器函数一般命名为getXX(写类时必须要写上),修改器函数名为setXX。
七、成员函数的参数
1、若struct和class成员函数中的参数,有两个
,则其中一个参数为结构体本身的成员,另一个参数需要定义,而结构体本身的成员参数不需要定义。
2、若struct和class成员函数中参数有一个,则不需要定义参数,此时参数为结构体本身成员。
八、友元
1、如果想让非成员函数访问一个类中的私有数据,应该在声明函数时前面加friend。
2、友元必须在被访问的类中声明,一个类的友元可以是全局函数、另一个类的成员函数或另一个类,类a是类b的友元隐含着a的所有成员函数都是b的友元。
3、friend关系是不可传递的:如果a是类b的友元,而类b是类c的友元,则a不会自动成为c的友元。
九、构造函数
1、构造函数是一种特殊的成员函数,能够在创建对象时被自动调用,负责对象的初始化。
2、构造函数的名字和内名字相同,他没有返回类型,(注意不是void的类型),构造函数的参数通常为数据成员提供初始值。
3、构造函数初始化
例:
①X(int v=0):r(m){m=v;}
②X(int v=0):m(v),r(m){…}
③X(){v=0}//没有参数的构造函数(必须要有)
4、成员初始化的顺序与它们在类定义中出现的顺序一致,构造函数初始化列表中初始值的先后关系不会影响实际的初始化顺序。
5、构造函数赋值
①类名+对象名(数值) 数值为要初始化的值
②类名+对象名 没有数值,系统自动赋值,无作用
十、const成员函数
1、const成员可以被const函数调用
2、const定义的对象只能调用const函数,不能调用非const成员函数
3、非const对象可以调用const成员函数
例:
class X{…};
const X b(5)//const 对象

猜你喜欢

转载自blog.csdn.net/qq_43550247/article/details/89303393