函数重载:
- 参数类型不同
- 参数个数不同
在类未定义之前,不能定义对象,因为不知道类类型的大小,无法预留准确的空间。但可以声明指向该类类型的指针或引用。
类的定义:
数据成员:
- 除了静态 static 数据成员外,数据成员不能在类体中被显式地初始化
- 类的成员可以是其他类的对象,称为类的组合。但不能以类自身的对象作为本类的成员。
成员函数:
利用构造函数创建对象:
类名 对象名[(实参表)];
类名 *指针变量 = new 类名[(实参表)];
**构造函数初始化成员有两种方法: **
- 使用构造函数的函数体进行初始化
- 使用构造函数的初始化列表进行初始化
格式:
funname(参数列表):初始化列表
{ 函数体,可以是空函数体 }
初始化列表的形式:
成员名1(形参名1),成员名2(形参名2),成员名n(形参名n)
class Date
{
int d, m, y;
public:
Date(int dd, int mm, int yy):d(dd),m(mm),y(yy)
{ }
Date(int dd, int mm): d(dd),m(mm)
{ }
}
必须使用参数初始化列表对数据成员进行初始化的几种情况:
数据成员为常量
数据成员为引用类型
数据成员为没有无参构造函数的类的对象
析构函数:
析构函数自动调用(隐式调用)
析构函数没有返回值,不能有参数,也不能重载
定义格式如下(类外实现):