通过一个多月的课程,学习与类的相关内容,包括类的定义,重载函数,构造函数与析构函数,复制构造函数,浅复制与深复制,常对象与常数据成员,静态成员,友元函数等知识。
学习了其运用与在其运用过程注意的内容,
1 (1)在类的定义中,数据多为私有,函数多为公有,私有成员只能被类自身的函数调用。
(2)类定义以分号结束。
(3)类的数据成员可以是其他类的对象,但不能以类自身的对象作为自身的成员,但类自身的指针和引用可以。
(4)对象第一个字母为大写2函数重载主要是用一个同名函数完成不同的功能,编译系统在编译阶段通过函数参数个数、参数类型不同,函数的返回值来区分该调用哪一个函数
3构造函数与析构函数构造函数
主要用来创造对象的特殊成员函数,其功能主要用来为对象分配空间,对数据成员初始化。析构函数用来对象消亡的清理工作。
(1)系统自动调用
(2)构造函数名与类名相同,也可以重载
(3)构造函数最少有两个,其中一个为无参构造函数
(4)创造对象是用指针与new实现。
(5)数据成员为常量,引用类型,没有无参构造函数的类的对象,必须用初始化列表进行初始化
4复制构造函数用已有的同类对象来创建新对象并初始化(1)复制构造函数要求有一个类类型的引用参数
5浅复制与深复制浅复制只复制了数据成员,其他的函数等资源没有被复制,如默认复制构造函数只是复制了数据成员深复制不仅复制了数据成员函数,还复制了函数等资源,如用一个对象初始化另一个对象。
6(1)常数据成员一旦被初始化,其值不能被改变
(2)常对象在定义时必须被初始化
(3)不允许改变常对象的数据成员
(4)常对象只能调用常成员函数,构造函数,静态成员函数
7静态成员
(1)静态成员为同类对象的共享,不属于单独一个类
(2)在类外定义时不用static前缀
(3)静态成员函数主要访问同一类中的静态成员
(4)私有静态成员函数不能在类外部或用对象访问
(5)静态成员函数中没有this指针
(6)在类外进行静态数据成员的声明,不能在成员初始化列表中进行初始化如果未进行初始化,则编译器自动赋初值(默认值是0)初始化时不能使用访问权限
(7)静态成员函数不访问类中的非静态数据成员。如有需要,只能通过对象名(或指向对象的指针)访问该对象的非静态成员
8友元函数如果在本类(类A)以外的其他地方定义了一个函数(函数B)这个函数可以是不属于任何类的非成员函数,也可以是其他类的成员函数,在类体中用friend对其(函数B)进行声明,此函数就称为本类(类A)的友元函数。
友元函数(函数B)可以访问这个类(类A)中的私有成员
(1)若F类是A类的友元类,则F类的所有成员函数都是A类的友元函数友元类通常设计为一种对数据操作或类之间传递消息的辅助类
总结:
通过本章类的学习,初步认识了类的使用方法,并能用类编写简单的例题,在写作业时,碰到很多问题,如单链表相关的知识,字符串数组、指针,常量的赋值等问题,但是通过查资料可以一一解决,在查资料的过程中加深了对知识的理解与记忆,总体来说,学的虽然有些吃力,但是还是学到了很多知识。
类 总结
最新推荐文章于 2020-06-03 08:45:51 发布