[历史学]C语言课程 类与对象.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[历史学]C语言课程 类与对象

《面向对象技术与Visual C++》--第3章 第9讲 类与对象 本章主要内容 类 对象 构造函数和析构函数 静态成员 友元 类 类是一种新的数据类型,而对象是具有这种类型的变量。类是一种将数据和作用于这些数据上的函数组合在一起的复杂数据类型。 一个类就是一个用户自定义数据类型。 类是面向对象程序设计的核心,利用它可以实现对象的抽象、数据和操作的封装以及信息的隐蔽。 类定义 类定义一般分为说明部分和实现部分。说明部分是说明该类中的成员,实现部分是对成员函数的定义。 类定义的一般格式如下 示例类的定义。 class Student //定义学生类Student {public: //声明成员函数,即方法 void input(char* pid,char* pname,int a,float s); void modify(float s); void display(); private: //声明数据成员,即属性 char id[10]; //学号 char name[20]; //姓名 int age; //年龄 float score; //成绩 }; //以括号及分号结束,体现封装 访问控制 访问权限有三种类型:private、public和protected。 三种访问权限的成员与出现的先后顺序无关,并且允许多次出现,但是一个成员只能具有一种访问属性。 成员函数的实现 成员函数是类中描述行为的成员,同时也是对封装的数据进行操作的惟一途径。 类定义的格式中,一般在类中说明成员函数原型,在类外进行成员函数的具体实现。同时,如果成员函数已经在类中定义,则不需要在类外实现。需要注意的是,在类中定义的成员函数自动成为内联函数。 示例成员函数在类中定义。 class Student //定义学生类Student {public: void input(char* pid,char* pname,int a,float s); void modify(float s) { score=s; } void display() { cout id:idendl; cout name:nameendl; cout age:ageendl; coutscore:scoreendl; } … … }; 若在类体外实现,则需要使用作用域运算符“::”,用它来标识某个成员函数是属于哪个类的,其定义格式如下: 示例成员函数在类外定义。 void Student::input(char* pid,char* pname,int a,float s) { //成员函数的实现 strcpy(id,pid); strcpy(name,pname); age=a; score=s; } 对象 对象的定义格式与普通变量相同。定义格式如下: 类成员的访问 定义了类及其对象,就可以通过对象来使用其公有成员,从而达到对对象内部属性的访问和修改。 对象对其成员的访问有圆点访问形式和指针访问形式。 类与结构的区别 C++中,结构是用关键字struct声明的类,默认情况下其成员是共有(public)的。这也是类(class)定义与结构(struct)定义的唯一区别。 例1、定义学生类,实现学生信息的简单处理。 相关程序文件: student.h,student.cpp , ex9_1.cpp 构造函数和析构函数 类描述了一类对象的共同特征,而对象是类的特例。对象在定义的时候可以进行数据成员的设置,称为对象的初始化。同样,在对象使用结束时,还可以进行一些相关的清理工作。C++中对象的初始化和清理工作,分别由两个特殊的成员函数来完成,它们就是构造函数和析构函数。 构造函数 构造函数的功能是在定义对象时被编译系统自动调用来创建对象并初始化对象。 其定义格式如下: 构造函数的特点 构造函数是成员函数,函数体可写在类体内,也可写在类体外。 构造函数的函数名与类名相同,且不指定返回值类型,它有隐含的返回值,该值由编译系统内部使用。 构造函数可以没有参数,也可以有参数,因此可以重载,即可以定义参数不同的多个构造函数。 每个类都必须有一个构造函数。如果类中没有显式定义构造函数,则编译系统自动生成一个缺省形式的构造函数,作为该类的公有成员。 程序中不能直接调用构造函数,在定义对象时编译系统自动调用构造函数。 示例

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档