类定义
C语言中的结构体在C++中代表一个所有成员都是public的类,该类不能对外界隐藏自己的重要信息和私密信息。需要对类进行封装,C++提供了类机制。
class <类名>
{
<访问控制符>:
<成员函数>
<访问控制符>:
<数据成员>
};
封装
公有成员在程序的任何地方都可以被访问,是类的对外接口。而且在类外只能访问类的公有成员(继承除外)。一般来说,成员函数的访问权限设为公有的,类外通过公有成员函数来操纵该类对象的属性。
私有成员只能被本类中的成员函数和友元访问,而不能被类外调用。所谓类外指的是普通函数或其他类的成员函数。一般来说,数据成员的访问权限设为私有的或保护的。
保护成员具有双重性,对其派生类而言,保护成员如同公有成员;对其他程序则表现得像私有成员。一般来说,程序中有类继承时,可以将部分类成员定义为保护成员,以便派生类访问,同时,对类簇外又实现了信息隐藏。
进一步细化
类定义一般分为说明部分和实现部分。说明部分是说明该类中的成员,实现部分是对成员函数的定义。
数据成员在类体中定义时,不能被显式地初始化,需要通过构造函数进行初始化。
类的成员函数在类体中声明时参数表中可以只含参数类型而不含参数名。
成员函数的实现既可以在类中,也可以在类外,但在类中定义的成员函数自动成为内联函数。
若在类体外实现,则需要使用作用域运算符“::”,用它来标识某个成员函数是属于哪个类的。
还可以把类的声明和实现分别放在两个不同的文件中,对软件开发商而言,他们可以向用户提供一些程序模块的接口,而不公开程序的源代码。
创建对象
<类名> <对象名表>;
Student s1,s2;
<对象名表>中可以有一个或多个对象名。当有多个对象名时,用逗号分隔。<对象名表>中还可以是指向对象的指针名或引用名,也可以是对象数组名。