《类和对象》PPT课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

函数 };
以一个分号“;”结束
类中的数据和函数,分别称作数据成员和成员函数。
类声明的简化格式如下:
class 类名{
数据成员
函数函数
};
h
4
2.1.2 类的构成
在类中,数据成员和成员函数分别属于private部分、protected
部分和public部分。数据成员和成员函数一般也统称为类的成员。
类声明的一般格式如下:
private: 私有数据成员; 私有成员函数;
};
私有成员只能被类内的成员 函数访问,而类外部的任何访
问都是非法的。
h
Leabharlann Baidu
5
2.类的定义格式
类的定义格式一般分为说明部分和实现部分。
说明部分:是用来说明类中的成员,包含数据成员的说明和成 员函数的说明。成员函数是用来对数据成员进行操作的,也称为“方 法”。
若在成员函数中调用非成员函数(没有类名的函数; 全局函数),则可用不带类名的::来表示。
h
9
当成员函数的规模较小时,语句只有1-5行,符合内联函数条件, 则可在类中定义成员函数,成为内联成员函数。
如:
class TDate {
内联成 员函数
若将内联成 员函数定义 在类说明之 外则要加上 inline。
同名
h
10
2.注意事项
1、在类体中不允许对所定义的数据成员进行初始化。
class TDate
{
public:…
private: int year(1998),month(4);
错误

};
2、类中的数据成员的类型可以为任意的。
3、习惯将类的定义代码放到一个头文件中,以后若要使用则用 文件包含命令包含。
注意
h
11
如定义一个类:
内联成
员函数 的定义
class TPoint
{ public:
void SetPoint(int x, int y) // 置坐标值
私有数据
成员的定 义
{ X=x; Y=y; //给数据成员赋值
} int Xcoord( ) {return X;} //提供X坐标值
int Ycoord( ) {return Y;} //提供Y坐标值
实现部分:是用来对成员函数进行定义。
说明部分的一般格式为:
class 类类型名{
private:
私有访问权限,
私有成员说明
为默认值,可
public:
缺省
公有成员说明
};
公有访问权限
除本类中的成员 函数及友元外, 其他类外函数不
能访问
程序中的任 何函数都可
访问
h
6
例如:定义一个person类,设person具有的特征:属性(姓名、年龄、
公有成员既可被类内的成 员函数访问,也可被类的外部
class 类名{
访问,是类与外界的接口。
public:
公有数据成员; 公有成员函数; protected: 保护数据成员; 保护成员函数;
保护成员可以由本类的成员函数访
问,也可以由本类的派生类的成员函 数访问,而类外的任何访问都是非法 的,将在第5章详细介绍。
int year;
int month; int day; }; int main() { Date date1;
C语言中的结构体缺点:结构体变 量可以在结构体外直接访问数据,在C 结构体中的数据是很不安全的。
date1.year=2010 ;//可以在结构体外直接访问数据year
date1.month=8; //可以在结构体外直接访问数据month
若在类说明外部定义成员函数,则应使用作用域限 定符::指明该函数是哪个类中的成员函数。
格式为:
类型 类名::成员函数名(参数表) {函数体}
如:
void Tperson::print( )
{ cout<<name<<age<<sex<< endl; }
除特殊指明外,成员函数操作的是同一对象中的数 据成员。其中如name等。
形式与变量的定 义形式相似
以区别其他
char name[10];
标识符
int age; char sex; public:
成员函数的说明 形式与一般函数 的说明形式一致
void print( );
};
h
7
例2.1 有关日期结构体的例子。
#include<iostream>
struct Date{ //声明了一个名为Date的结构体
性别),方法(输出一个人的属性);则对应着有4个成员:三个数据成员,
一个成员函数。这些数据成员一般不能由外界直接访问,随意修改。而只
能通过成员函数进行访问。所以三个数据成员定义为私有成员,print成员
函数定义为公有成员。则有:
数据成员的说明
class Tperson
类名通常用{ T 字母开始,
private:
void Move(int xOffset,int yOffset ); // 移动点
private:
类体外成
int X; int Y; };
员函数的 定义
date1.day=25; //可以在结构体外直接访问数据day
cout<<date1.year<<"."<<date1.month<<"."
<<date1.day<<endl;
return 0;
}
C++中引入了类的概念,克
程序的运行结果如下:
服了C结构体的缺点。
2010.8.25
h
8
类的实现部分即定义它的成员函数,方式与定义普 通函数大体相同。
public:
void Set(int m, int d, int y) // 置日期值
{
month=m; day=d; year=y;
}
void Print( ); // 打印输出
private:
int month;
int day;
由于类名是成员函数名的一
int year; };
部分,所以一个类的成员函 数与另一个类的成员函数可
第2章 类和对象(一)
2.1 类的构成 2.2 成员函数的定义 2.3 对象的定义和使用 2.4 构造函数与析构函数
h
1
2.1 类的构成
主要内容:2.1.1 从结构体到类 2.1.2 类的构成
h
2
2.1.1 从结构体到类
1.结构体的扩充
C语言结构体一般格式如下: struct 结构名
{ 类型 成员数据;
};
例如下面声明了一个日期结构体:
struct Date{
int year;
//年
int month; //月
int day;
//日
};
h
3
C++中引入了类的概念, 它不仅可以含有数据,而
且还可以含有函数。
类的声明由关键字
类声明的简化格式如下:
class打头,后跟类名
class 类名{ 数据
花括号中是类体
相关文档
最新文档