定义类的语法形式:
class 类名称
{
public:
外部接口
protected:
保护型成员
private:
私有成员
};
声明一个对象:类名 对象名;
访问对象的成员:
(1)访问对象的数据成员:对象名.数据成员名
(2)访问对象的函数成员:对象名.函数成员名(参数表)
成员函数的实现:
返回值类型(void or int)类名::函数成员名(参数表)
{
函数体
}
类成员函数的默认值一定要写在类定义中。
内联成员函数的声明有两种方式:隐式声明(将函数体直接放在类体中)和显式声明(在函数返回值类型前加上inline,类定义中不加入函数体)。
构造函数和析构函数:构造函数也是类的一个成员函数,且构造函数的函数名和类名相同,没有返回值。构造函数通常声明为公有函数。
复制构造函数:把初始值对象的每个数据成员的值都复制到新建立的对象中。
复制构造函数的格式:
class 类名
{
public:
类名(形参表);
类名(类名&对象名);
...
};
类名::类名(类名&对象名);
{
函数体
}
析构函数:是由类名前面加“~”构成,没有返回值,且析构函数不接收任何参数。
如果在一个代码中出现了两个类之间的相互调用,需要使用前向引用声明,即在引用未定义的类之前,将该类的名字告诉编译器。尽管使用了前向引用声明,但是在提供一个完整的类定义之前,不能定义该类的对象,也不能在内联函数中使用该类的对象。