第六章知识总结

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_43633379/article/details/89303643

类简单来说是用户自己定义的数据类型。对象是用类这个数据类型定义的一个变量。
类的基本思想是数据抽象和封装。
类是一种抽象的数据类型,它不占存储空间,不能容纳具体的数据,因此在类声明中不能给数据成员赋初值。
C++保留C结构体这种数据类型,并对其功能进行了扩充,使结构体可以含有不同类型的数据,而且还可以含有函数。类与结构体的扩充形式非常相似。
类与结构体区别:在结构体中,如果对成员不作private 或public声明,系统将其默认为公有的( public ),外界可以任意的访问其中的数据成员和成员函数,它不具有信息隐蔽的特性;而在类的声明中,如果对其成员不作private 或public声明,系统将其默认为私有的( private ),外界不可以访问其中的数据成员和成员函数,它提供了默认的安全性。
数据抽象:
依赖接口和实现分离编程的技术。
接口:用户可以执行的操作。
实现:包括类的数据成员、各种函数。
抽象数据类型包括数据以及操作两部分,即成员函数以及数据成员。
private:一般是私有数据成员,私有函数较为少见。私有数据成员只能由私有函数或者友元函数访问,确保了函数的封装性。
成员函数在声明时,可以在结构体(类class内)声明,但是有时候函数太长,声明在类里面太难看,就只能声明在类之外,这时候就不能只写成普通函数的样子了,因为这样会被定义成一个普通函数,就不能使用私有成员了。
要想将数据成员定义在类外,可以用:类名::成员函数()的形式。
访问限定符
private、public、porotected限定符。前两个比较容易理解,写代码也比较常用,最后一种现在还不常使用,主要用于继承中(暂时还没学)。
this指针
每个成员函数都有的隐藏参数:地址。指向接收消息的对象,成为this指针。
他是一个常量,含有实施调用的对象的地址。既不能改变他的值,也不能取他的地址。
this指针常用于:
1.区分与变量名重名的数据成员
2.返回当前对象
3.获取当前对象的地址
友元
使用时在函数前面加上friend就可以。在类外就可以使用私有函数了。
但是为了封装性,一般不用友元,我们一般只有在重铸运算符的时候使用友元。
构造函数和构析函数
构造函数对对象进行初始化工作,构析函数是对对象进行销毁。
构造函数和构析函数都是以类名为名称,没有返回值。构析函数前面加个波浪号。
构造函数必须写两个,一个是有参的构造函数,一个是无参的构造函数。因为我们在定义函数时,会将其设置为普通的数据模式,这就会调用无参的构造函数。
构析函数会将对象的生命周期结束,并且函数自动调用。可有可无。
关于static关键字:
用关键字static修饰的成员变量称为静态成员变量或者是类变量,而不用static修饰的变量称为实例变量;
注意点:(1):类变量(静态变量)是和该类所创建的所有对象相关联的变量,即:所有对象共享同一变量,改变其中的一个对象的这个类变量就同时改变了其他对象的这个类变量;也就是是类变量之间是相互影响的。
(2):静态成员变量和静态成员方法是属于整个类的,而不是某个对象实例,所以可以通过类名和对象名去调用;而实例变量只能通过对象名访问。
类(class)是一种数据类型,是一种用户定义的抽象的数据类型。

猜你喜欢

转载自blog.csdn.net/qq_43633379/article/details/89303643