如何创建一个c++类|声明类的方法



本节课我们一起来学习如何创建c++类。先要声明一个类,只有声明了一个类我们才能使用它。类是程序员指定的类型。当在程序中要用到该类类型,就必须根据需要进行声明,或者使用别人已设计好的类。C++标准自身并不提供现成的类的名称、结构和内容。当一个类被声明了,编译器并没有分配内存,声明类只是告诉编译器有这样的一个类,包含哪些函数以及数据等信息。同时还告诉了编译器这个类有多大,类的大小是由类的变量来确定的,例如类中有两个int类型的变量,一个int类型占有4个字节,因此该类的大小为2乘以4等于8个字节。假如类中的方法被定义为void类型,那么该函数是不占用内存的。

在C++中声明一个类类型和声明一个结构体类型是相似的。以下是声明一个结构体类型的方法:
struct Student //声明了一个名为Student的结构体类型
{
int num;
char name[20];
char sex;
};
Student stud1,stud2;
//定义了两个结构体变量stud1和stud2,它只拥有数据,没有相关的操作。
现在声明一个c++类:
class Student //以class开头
{
int num;
char name[20];
char sex;//以上3行是数据成员
void display( ) //这是类中的成员函数
{
cout<<″num:″<<num<<endl;
cout<<″name:″<<name<<endl;
cout<<″sex:″<<sex<<endl;
//以上4行是函数中的操作语句}
};Student stud1,stud2;//定义了两个Student 类的对象stud1和stud2
}
声明类的方法是由声明结构体类型的方法发展的。类(class )就是对象的类型。类就是一种广义的数据类型。类这种数据类型中的数据既包含数据,也包含操作数据的函数。不可以将类中的全部成员与外界隔离,通常是把数据隐蔽起来(也就是私有变量),而把成员函数作为对外界的接口。可以将上面类的声明改成以下:

class Student //声明类类型
{
private : //声明以下部分为私有的
int num;
char name[20];
char sex;
public : //声明以下部分为公用的,对象可以直接使用
void display( )
{
cout<<″num:″<<num<<endl;
cout<<″name:″<<name<<endl;
cout<<″sex:″<<sex<<endl;}
};
Student stud1,stud2;//定义了两个Student类的对象
在类中既不指定private,也不指定public,则c++就默认为是私有的。归纳以上对类类型的声明,可得到c++类的声明一般形式如下:
class 类名
{
private : 私有的数据和成员函数;
public : 公用的数据和成员函数;
};

private与public称为成员访问限定符(member access specifier)。除private和public外,还有一种成员访问限定符protected(受保护的),用protected声明的成员称为受保护的成员,它不能被类外访问(这点与私有成员类似),但可以被派生类的成员函数访问。在声明类类型时,声明为private的成员和声明为public的成员的次序任意。

在一个类体中,关键字private和public可以分别出现多次。每个部分的有效范围到出现另一个访问限定符或类体结束时(最后一个右花括号)为止。但为了使程序,应该养成这书写规范性,要养成这样的习惯: 使每一种成员访问限定符在类定义体中只出现一次。现在的C++ 程序多数先写public部分,把private部分放在类体的后部。这样可以使用户将注意力集中在能被外界调用的成员上,使阅读者的思路更清晰一些。

在C++程序中,经常可以看到类。为了用户方便,常用的C++编译系统往往向用户提供类库(但不属于C++语言的组成部分),内装常用的基本的类,供用户使用。也可以将自己或本单位经常用到的类放在一个专门的类库中,需要用时直接调用类库就行了,这样就减少了程序设计的工作量。