文档详情

面向对象程序设计与C++语言 第二版 教学课件 作者 杨庚 王汝传 叶晓国 第七讲.ppt

发布:2017-08-16约5.89千字共24页下载文档
文本预览下载声明
* * 第4章 类与对象 4.1 类定义与对象声明 4.2 对象的使用 4.3 对象成员 4.4 友员 friend 4.5 静态成员和对象组 织 4.6 模板 4.7 应用举例 第七讲 类与对象 4.4 友员 (friend) 第4章 类与对象 4.1 类定义与对象声明 4.2 对象的使用 4.3 对象成员 4.4 友员 friend 4.5 静态成员和对象组 织 4.6 模板 4.7 应用举例 什么要定义友员 ? 类中的私有数据不能 被外部任意访问修改, 只能 由类本身的函数访问修改. 友员 ( friend ) 友员的作用 ? 被定义为友员的类或函数 可以访问修改类的私有数据. 第4章 类与对象 4.1 类定义与对象声明 4.2 对象的使用 4.3 对象成员 4.4 友员 friend 4.5 静态成员和对象组 织 4.6 模板 4.7 应用举例 友员的定义形式 ? 在类内定义: 友员类: friend class 友员类名; 友员成员函数: friend 返回值类型 类名::函数名; 友员函数: friend 函数原型声明; 第4章 类与对象 4.1 类定义与对象声明 4.2 对象的使用 4.3 对象成员 4.4 友员 friend 4.5 静态成员和对象组 织 4.6 模板 4.7 应用举例 友员类 定义形式 ? 将一类声明为另一类的友员. 例1. 先定义两个类“学生” st_n 和“成绩” sco, 再将 sco 定义为 st_n 的友员. 注意:我们将两个类放在一个文件内,而 不是通常的多个文件,主要是避免 篇幅太长。 第4章 类与对象 4.1 类定义与对象声明 4.2 对象的使用 4.3 对象成员 4.4 友员 friend 4.5 静态成员和对象组 织 4.6 模板 4.7 应用举例 #include iostream.h #include string.h class st_n { public: }; st_n(char *n1, char *n2) { name=new char[strlen(n1)+1]; num =new char[strlen(n2)+1]; strcpy(name, n1); strcpy(num, n2); } void dsp( ) { cout \n name: name \n num: num; } char *name, *num; //学生姓名、学号。 第4章 类与对象 4.1 类定义与对象声明 4.2 对象的使用 4.3 对象成员 4.4 友员 friend 4.5 静态成员和对象组 织 4.6 模板 4.7 应用举例 class sco { public: }; sco(int i1, int i2) :mat(i1),eng(i2) { } void show( ) { cout \n mathematics: mat \n english: eng; } int mat, eng; //学生数学、英语成绩。 第4章 类与对象 4.1 类定义与对象声明 4.2 对象的使用 4.3 对象成员 4.4 友员 friend 4.5 静态成员和对象组 织 4.6 模板 4.7 应用举例 void main( ) { st_n a( Wang , 123456 ); //创建对象 sco b(72, 82); //创建对象 a.dsp( ); //打印姓名、学号 b.show( ); //打印数学、英语成绩 } 结果: name: Wang num: 12345 mathematics:72 english: 82 问题:定义了两个类 a,b,且相互不能
显示全部
相似文档