A的外的出》净的出《的要的《图的《的气
教学内容: 111类的概念及定义 112对象的概念、定义及初始化 113类和对象的作用域 114 const成员函数 11.5静态成员 116友元及友元类 C++程序设计课件设计制作:徐龙琴
C++程序设计课件 设计制作:徐龙琴 2 教学内容: 11.1 类的概念及定义 11.2 对象的概念、定义及初始化 11.3类和对象的作用域 11.4 const成员函数 11.5 静态成员 11.6 友元及友元类
教学目的: 团掌握类的概念、定义格式、类与结构的关系 区掌握对象的定义 团掌握构造函数和析构函数的含义与作用、定义方式 和实现 区掌握友元函数的含义,友元函数和成员函数的区别 C++程序设计课件设计制作:徐龙琴 3
C++程序设计课件 设计制作:徐龙琴 3 掌握类的概念、定义格式、类与结构的关系 掌握对象的定义 掌握构造函数和析构函数的含义与作用、定义方式 和实现 掌握友元函数的含义,友元函数和成员函数的区别 教学目的:
51类的概念及定义 随着软件业的发展,出现了需要多人合作方能完成的大 型软件,而结构化程序设计方法是一种面向数据或面向过程的 设计方法,它将数据和对数据的处理过程分开,给软件的调试、 维护带来了很大困难。为了解决这些问题,人们提出了面向对 象的程序设计(00P)。 00P是把程序构造成由若干对象组成,每个对象由一些 数据以及对这些数据所实施的操作构成;对象间通过消息(调 象成类。一个类所描述的属性可以从其它的类继承。多 用对象的操作)相互联系;将有共同属性和行为的一批对象 C++程序设计课件设计制作:徐龙琴
C++程序设计课件 设计制作:徐龙琴 4 §11.1 类的概念及定义 随着软件业的发展,出现了需要多人合作方能完成的大 型软件,而结构化程序设计方法是一种面向数据或面向过程的 设计方法,它将数据和对数据的处理过程分开,给软件的调试、 维护带来了很大困难。为了解决这些问题,人们提出了面向对 象的程序设计(00P)。 00P是把程序构造成由若干对象组成,每个对象由一些 数据以及对这些数据所实施的操作构成;对象间通过消息(调 用对象的操作)相互联系;将有共同属性和行为的一批对象抽 象成类。一个类所描述的属性可以从其它的类继承
1类的概念 C+的类是在结构体的基础上扩充而来的。类是把各种不 同类型的数据(称为数据成员)和对数据的操作(成员函数) 组织在一起而形成的用户自定义的数据类型。 0+中,类定义包括类说明和类实现两大部分。说明部 分提供了对该类所有数据成员和成员函数的描述,而实现部分 提供了所有成员函数的实现代码。 C++程序设计课件设计制作:徐龙琴
C++程序设计课件 设计制作:徐龙琴 5 C++的类是在结构体的基础上扩充而来的。类是把各种不 同类型的数据(称为数据成员)和对数据的操作(成员函数) 组织在一起而形成的用户自定义的数据类型。 C++中,类定义包括类说明和类实现两大部分。说明部 分提供了对该类所有数据成员和成员函数的描述,而实现部分 提供了所有成员函数的实现代码。 ⒈类的概念
2.定义类的一般形式为 class类名 private: 私有数据成员或成员函数 protected: 称为作用域运算符,指明该 保护数据成员或成员函数是属于哪个类的 public 公有数据成员或 四级 类型类名:函数名(参数表)∥各成员函数的定义 函数体 C++程序设计课件设计制作:徐龙琴
C++程序设计课件 设计制作:徐龙琴 6 class 类名 { private: 私有数据成员或成员函数; protected: 保护数据成员或成员函数; public: 公有数据成员或成员函数; }; 各个成员函数的定义; ⒉定义类的一般形式为: 类型 类名:: 函数名(参数表) //各成员函数的定义 { 函数体 } :: 称为作用域运算符,指明该 成员函数是属于哪个类的
定义类的说明: Ic ass是定义类的关键字,类名是一个标识符,用于惟一标 识一个类,一般首字母大写 1大括号内是类体(包含数据成员和函数成员),类的成员 从访问权限上分有以下三类: public:该成员可以被程序中的任何代码访问 private:只能被类本身成员函数及友元类的成员函数访问 protected:只能被类本身的成员函数、友元类的成员函数 和该类的派生类的成员访问。 类的成员从访问权限默认为 private权限 成员函数可以在类体中定义,也可在类体外定义,在类体 外定义成员函数时,必须先在类体中作函数的原型说明 C++程序设计课件设计制作:徐龙琴 7
C++程序设计课件 设计制作:徐龙琴 7 定义类的说明: class是定义类的关键字,类名是一个标识符,用于惟一标 识一个类,一般首字母大写 大括号内是类体(包含数据成员和函数成员),类的成员 从访问权限上分有以下三类: public:该成员可以被程序中的任何代码访问; private:只能被类本身成员函数及友元类的成员函数访问 protected:只能被类本身的成员函数、友元类的成员函数 和该类的派生类的成员访问。 类的成员从访问权限默认为private权限 成员函数可以在类体中定义,也可在类体外定义,在类体 外定义成员函数时,必须先在类体中作函数的原型说明
■类的数据成员描述了类的属性,类的成员函数反映了对 数据成员的操作,也可称为方法。成员函数可以重载 允许声明重载函数和带缺省形参值的函数 类是一种自定义的数据类型,系统并不为类分配存储空间。 类名不能与变量同名。 ■为了提高运行时的效率,对于简单的函数可以声明为内联形 式(函数体放在类的声明中或使用 inline关键字) ■类体中不允许对数据成员进行初始化 类中的数据成员的类型可以是任意,可以是另一个类的对象 但自身类的对象是不可以的。 C++程序设计课件设计制作:徐龙琴 8
C++程序设计课件 设计制作:徐龙琴 8 类的数据成员描述了类的属性,类的成员函数反映了对 数据成员的操作,也可称为“方法” 。成员函数可以重载 允许声明重载函数和带缺省形参值的函数 类是一种自定义的数据类型,系统并不为类分配存储空间。 类名不能与变量同名。 为了提高运行时的效率,对于简单的函数可以声明为内联形 式(函数体放在类的声明中或使用inline关键字) 类体中不允许对数据成员进行初始化。 类中的数据成员的类型可以是任意,可以是另一个类的对象, 但自身类的对象是不可以的
例:描述图书的类定义 class Record i private: char bookname20;/数据成员 bookname(用于表图书名称) int number;/数据成员 number,表示图书编号 public / public成员 void registe( char *a int b);/成员函数 regist,用于给 /各数据成员赋值 void showO;/成员函数show,显示各数据成员的值 void Record: regist(char *a, int b) void Record: show() C++程序设计课件设计制作:徐龙琴
C++程序设计课件 设计制作:徐龙琴 9 class Record { private: char bookname[20]; //数据成员bookname(用于表图书名称) int number; //数据成员number,表示图书编号 public: //public成员 void regist(char *a,int b); //成员函数regist,用于给 //各数据成员赋值 void show(); //成员函数show,显示各数据成员的值 }; void Record::regist(char *a,int b) { … } void Record:: show( ) { … } 例:描述图书的类定义
(1)类成员函数的定义: ①将成员函数的定义直接写在类中: class record i private: char bookname[20]; int number;/数据成员 number,表示图书编号 publie void regist( char a int b)/成员函数 regist0的定义 { strcpy( bookname,a);/给数据成员 bookname赋值 number=b 给数据成员 number赋值 四最抛1h= 在类中直接定义成员函数的情况一般适合于成员函数规模较 小的情况,也就是说它们一般为内联函数,即使没有明确用 inline关键字。 C++程序设计课件设计制作:徐龙琴 10
C++程序设计课件 设计制作:徐龙琴 10 ⑴ 类成员函数的定义: ①将成员函数的定义直接写在类中: class Record { private: char bookname[20]; int number; //数据成员number,表示图书编号 public: void regist(char *a,int b) //成员函数regist()的定义 { strcpy(bookname,a); //给数据成员bookname赋值 number=b; //给数据成员number赋值 } void show() //成员函数show()的定义 { cout<<”名称:”<<bookname<<endl; cout<<”号码:”<<number<<endl; } }; 在类中直接定义成员函数的情况一般适合于成员函数规模较 小的情况,也就是说它们一般为内联函数,即使没有明确用 inline关键字