一周学习总结_(´ཀ`」 ∠)_
一、对对象和类的理解
在C++中,类是一种“规范”,它描述了这种新型数据格式,对象是根据这种规范构造的特定数据结构。
“新型数据格式,特定数据结构”,很容易联想到C语言中的结构体(之后才知道结构体是特殊的类),更容易理解。
在我的理解,“类”就像一张图纸,一个模板,包含着许多基本属性。“对象”是类的实例,也就是对应的实物。
举例来说,定义描述人类一个类,包含着许多数据比如:名字,身高,体重,肤色,发色等等。
而它的对象,一个叫小明,身高180,体重70,肤色白色,发色为黑的一个人。
就像网游游戏里面“捏人”过程 一样,你可以通过修改参数更改他的名字,身高,体重,肤色,发色。
最后得到的那个角色,就是一个对象。
二、访问控制的理解
关键字:public(公共的),private(私有的),protected(受保护的)。
public对外是可见的,就像是广场,大家都可以去访问里面的成员。
private的数据成员和成员函数,就像藏家你家里,谁都不可以私自访,相当于隐藏。
protect感觉更像是保险箱,只有拥有钥匙(子类)才可以访问。
在C语言中我们学过的结构体,也是一种特殊的类。只不过结构体定义用的是struct,而类用的是class。
除此之外,还有一点不同的是,在struct下的所有成员,都被默认为是public的,而class则是被默认为 private的。
三、this指针的理解
this指针就是一个对象的指针,是编译器自动设置的所以叫隐含指针??每一次this指针指向当前的对象,对各成员的访问均通过this进行,然后通过运算符->访问该对象的成员。运用非常方便,就相当于this=&当前对象。
四、构造函数和析构函数的理解
构造函数:函数名和类名相同的函数称为构造函数。它的作用是在建立一个对象时,作某些初始化的工作(例如对数据赋予初值)。C++允许同名函数,也就允许在一个类中有多个构造函数。如果一个都没有,编译器将为该类产生一个默认的构造函数。它不能指定返回类型,甚至void 也不行。
析构函数:当一个类的对象离开作用域时,析构函数将被调用(系统自动调用)。析构函数的名字和类名一样,不过要在前面加上 ~ 。对一个类来说,只能允许一个析构函数,析构函数不能有参数,并且也没有返回值。析构函数的作用是完成一个清理工作,如释放从堆中分配的内存。一个类中可以有多个构造函数,但析构函数只能有一个。对象被析构的顺序,与其建立时的顺序相反,即后构造的对象先析构。
构造函数的作用在规定中写道析构函数的作用就是释放掉内存,而构造函数就是给创建对象; 开辟内存空间;初始化。
让我不禁想起了被malloc和free函数所支配的恐惧。
同样是malloc 申请内存,free把malloc分配的空间给释放了。
功能很相似,让我更容易理解了许多。
五、继承的理解
继承完全通过一样的特性可以省下一堆不必要的代码,用“:”连接。
继承方式有public,private,protected,分为基类(爸爸)和派生类(儿子),子类继承了父类的特性就不用再写了。
public继承:访问权限都不变。
private继承:都变成private。
protected继承:儿子可以访问,爸爸的public成员在儿子里的变为protected,其他保持不变。
总结:对c++部分有了一点点的了解,下周应结合书本补全一下。
2017.1.23
孙琳