1、(1)类的定义
类也是一种数据类型,同int,float等基本数据类型一样,可以生成类的变量。
每个类可以没有成员,称为空类。
例如:首先用class声明类的名称。
class AA
{
};
也可以定义多个成员,成员可以是数据,函数或类型别名。
(2)访问限定符
访问限定符有三种:公有的(public)、保护的(protect)、和私有的(private)。
公有成员定义了类的外部接口,可以被用户程序直接访问。
私有成员定义了类的内部使用的数据和函数,只能被自己所属类的成员函数访问。
保护的成员的权限介于公有和私有之间,在继承中使用。
(3)面向对象封装性
在面向对象程序设计中。通过封装,可以将一部分属性和操作隐藏起来,不让使用者访问,另一部分作为类的外部接口,使用者可以访问。
(4)对象大小的计算
空类的大小为1,其他计算变量大小,存在内存对齐。
2,四个默认成员函数&运算符重载
构造函数:(1)函数名与类名相同。
(2)无返回值。
(3)对象构造时系统自动调用对应的构造函数。
(4)构造函数可以重载。
(5)构造函数可以在类中定义,也可以在类外定义。
(6)如果类定义中没有给出构造函数,则编译器自动产生一个缺省的构造函数,但只要自己定义了构造函数,系统不会自动产生构造函数。
(7)无参构造函数和全缺省构造函数都认为时缺省的构造函数,并且缺省的构造函数只能有一个。
析构函数:(1)在类明前加上~
(2)析构函数无参数无返回值。
(3)一个类有且只有一个析构函数,若未显示定义,系统会自动生成缺省的析构函数。
(4)对象生命周期结束时,编译系统自动调用析构函数。
(5)析构函数不是删除对象,而是做一些清理工作。
拷贝构造函数:(1)是一个构造函数的重载
(2)拷贝构造函数的参数必须使用引用传参,使用传值方式会引发无穷递归调用。
(3)若无定义,系统会默认缺省的拷贝构造函数。
赋值运算符重载:是对一个已存在的对象进行拷贝赋值。
3、隐含的this指针
(1)每个成员函数都有一个指针形参。
(2)编译器会对成员函数进行处理
(3)this指针是成员函数隐形指针形参。