- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4_类和对象
类与对象
Classobject
类的概念
在现实中,类是对一组客观对象的抽象,它将该组对象所具有的共同特征(包括属性和服务)封装起来,以说明该组对象的能力和性质。
在系统中,类(class)是一种用户自定义的数据类型。通过类使得现实中的抽象实体在程序中直接表示为一个标识符,并可以进行引用和操作。
这使得程序中的概念与应用中的概念相互比较一致和对应。
类术语
定义数据的类型以及操作这些数据的函数
类的实例称为对象
类中的变量和函数称为成员
私有和公有 2-1
类成员可以在类的公有或者私有部分声明
数据成员通常在私有部分中声明
在公有部分中声明的成员可以被该类外部的函数访问
公有部分构成类的接口
私有和公有 2-2
无法从类的外部访问私有数据
其他类的私有数据对于当前类也是隐藏的
类定义的格式
类的定义格式一般分为说明部分和实现部分。
说明部分:是用来说明类中的成员,包含数据成员的说明和成员函数的说明。成员函数是用来对数据成员进行操作的,也称为“方法”。
实现部分:是用来对成员函数进行定义。
说明部分的一般格式为:
class 类类型名{
private:
私有成员说明
public:
公有成员说明
};
程序中的任何函数都可访问
私有访问权限,为默认值,可缺省
除本类中的成员函数及友元外,其他类外函数不能访问
公有访问权限
类实例
例如:定义一个person类,设person具有的特征:属性(姓名、年龄、性别),方法(输出一个人的属性);则对应着有4个成员:三个数据成员,一个成员函数。这些数据成员一般不能由外界直接访问,随意修改。而只能通过成员函数进行访问。所以三个数据成员定义为私有成员,print成员函数定义为公有成员。则有:
class CPerson {
private:
char name[10];
int age;
char sex;
public:
void print( ); };
成员函数的说明形式与一般函数的说明形式一致
数据成员的说明形式与变量的定义形式相似
类名通常用C字母开始,以区别其他标识符
类实例(2)
类的实现部分即定义它的成员函数,方式与定义普通函数大体相同。
若在类外部定义成员函数,则应使用作用域限定符::指明该函数是哪个类中的成员函数。
格式为:
类型 类名::成员函数名(参数表) {函数体}
如:
void CPerson::print( )
{ coutnameagesex endl; }
除特殊指明外,成员函数操作的是同一对象中的数据成员。其中如name等。
调用非成员函数(没有类名的函数;全局函数),则可用不带类名的::来表示。
内联函数
当成员函数的规模较小时,语句只有1-5行,符合内联函数条件,则可在类中定义成员函数,成为内联成员函数。
如:
class CDate {
public:
void Set(int m, int d, int y) // 置日期值
{
month=m; day=d; year=y;
}
void Print( ); // 打印输出
private:
int month;
int day;
int year;
};
类定义注意事项
1、在类体中不允许对所定义的数据成员进行初始化。
class TDate
{ public:…
private:
int year=1998,month=4;
…
};
2、类中的数据成员的类型可以为任意的。
3、习惯将类的定义代码放到一个头文件中,以后若要使用则用文件包含命令包含。
4、成员名与方法名不能重名.
一个类实例
如定义一个类:
class CPoint
{ public:
void SetPoint(int x, int y) // 置坐标值
{
X=x; Y=y;
文档评论(0)