文档介绍:第七章类与对象
§ 类的定义
一、类的概念
类是一种复杂的数据类型,它是将不同类型的数据和这些数据相关的运算封装在一起的复合体。
因此类具有
抽象性
隐藏性
封装性
汽车类
汽车对象
汽车对象
汽车对象
汽车对象
§ 类的定义
二、类的定义格式
说明部分
说明数据成员的类型和名字
给出成员函数的实现或定义
说明成员函数(对数据成员的操作)
实现部分
§ 类的定义
二、类的定义格式
class <类名>
{
public:
<成员函数和数据成员的说明或实现>
private:
<成员函数和数据成员的说明或实现>
};
<各个成员函数的实现>
说明部分
实现部分
§ 类的定义
二、类的定义格式
从访问权限上分,类的成员可分为:
公有的(public)
私有的(private)
保护的(protected)
private可以缺省,
另外它们在类体内出现
的顺序和次数没有限制。
§ 类的定义
二、类的定义格式
从访问权限上分,类的成员可分为:
公有的(public)
私有的(private)
保护的(protected)
公有成员不仅可以被
成员函数访问,而且可以
在程序中被引用。它提供
了类的接口功能。通常将
类中的全部或部分成员函
数定义为公有成员。
私有成员是被隐藏的
数据,只有该类的成员函
数或友元函数才可以引用
它,在程序中不可访问,
通常将一些数据成员定义
为私有成员。
保护成员除了该类的
成员函数或友元函数可以
引用它外,该类的派生类的
成员函数也可访问它。
§ 类的定义
三、类的定义举例
class Tpoint
{ public:
void SetPoint(int x,int y);
int Xcoord( ) {return X;}
int Ycoord( ) {return Y;}
void Move(int xOffset,int yOffset);
private:
int X,Y;
};
void Tpoint::SetPoint(int x,int y)
{ X=x;Y=y;}
void Tpoint::Move(int xOffset,int yOffset)
{ X+=xOffset;Y+=yOffset;}
class Tpoint
{
public:
void SetPoint(int x,int y);
int Xcoord( ) {return X;}
int Ycoord( ) {return Y;}
void Move(int xOffset,int yOffset);
private:
int X,Y;
};
void Tpoint::SetPoint(int x,int y)
{ X=x;Y=y;}
void Tpoint::Move(int xOffset,int yOffset)
{ X+=xOffset;Y+=yOffset;}
§ 类的定义
三、类的定义举例
①类体内包含有数据成员和成员函数。数据成员的类型可以是C++语言所允许的所有类型。成员函数可以在类体内定义,也可在类体外定义。
说明
②在类体内允许对成员函数定义,但是不允许对数据成员进行初始化。如:
class Tpoint( )
{
public:
…
private:
int X=5,Y=9;
};
③一般地,习惯于在类体内先说明公有成员,再说明私有成员,因为公有成员是用户所关心的。
④习惯于将类的定义的说明部分或者整个定义部分放在一个头文件中。,以后程序中使用这个类时,只需使用头文件包含命令:
#include <>
§ 对象的定义
一、对象的定义
<类名> <对象名表>;
其中,<类名>是所定义的对象所属类的名字。<对象名表>中可以是一个或多个一般对象名,也可以是指向对象的指针名、对象数组名或引用名。
如:Tpoint a1,d[3],*p;
直接用类名,而不要在类名前加class