一.访问限定符:类中的访问限定符包括public,private和protect,其中最常用的为public和private,private中的内容不可见,而public中的内容包括对public中的数据成员进行封装以及其他功能。
二.对象实例化:包括从栈中实例化(class TV{},TV tv/TV tv[20]),和从堆中实例化(class TV{},TV *p=new TV()/TV *q=new TV[20])即申请内存的方式,需要注意的是从堆中实例化后需要通过delete p ,delete []q释放内存。
三.对象成员访问方式:从栈中实例化时:如TV tv;tv.type=0;tv.changevol();
TV tv[20];tv[1].type=0;tv[1]changevol();.......
从堆中实例化时:如TV *p=new TV();p->type=0;
TV*q=new TV[20];p[1].type=0;
四.类外定义:即成员函数在类中声明,在类外定义,用法为 数据类型 类名::函数名{},包括同文件定义与分文件定义,分文件定义即为在.h文件中定义类并声明函数,再在.cpp文件中定义成员函数,定义时.cpp文件需包含头文件#include"类名.h",最后用另一个.cpp文件进行编译,同样包含头文件#include"类名.h",。
五.构造函数:1.构造函数的规则及特点:
a.构造函数在对象实例化时被自动调用且仅调用一次;
b.构造函数与类同名;
c.构造函数没有返回值,不写数据类型;
d.构造函数可以有多个重载形式;
e.实例化对象时仅用到一个构造函数;
f.当用户没有定义构造函数时,编译器自动生成一个构造函数,该函数没有做任何事;
2.构造函数写法:无参构造函数:类名(){。。。。。。}
有参构造函数:类名(形参){。。。。。。}
3.拷贝构造函数:写法:类名(const类名&变量名),当通过同类型的对象实例化另外的对象时,自动调用拷贝构造函数。
4.初始化列表:初始化列表可同时初始化多个数据成员,且只能用于构造函数,用法为 类名():数据成员(值),数据成员(值){},其特殊作用在于private中的const类型成员只能通过该方式进行初始化。
六.析构函数:使用方法:~类名(){。。。。。。}
用处:函数执行完后自动释放资源
特点:1.如果没有自定义的析构函数则系统自动生成
2.析构函数在对象销毁时自动调用
3.析构函数没有返回值、没有参数也不能重载
七.对象的生命历程:申请内存->初始化列表->构造函数->参与运算->析构函数->释放内存