




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
IC-MSP C+程序设计 IC-MSP 第7章 类的概念与定义 类的静态成员和常量成员 友元类 运算符重载 友元类 类的静态成员和常量成员 运算符重载 理解类的静态成员和常量成员 理解友元类 掌握运算符重载 IC-MSP 7.2 C+语言中的类 加了“static”关键字,则此成员就是静态成员。 静态成员可以是静态数据成员和静态函数成员。 7.2.1 静态成员和常量成员 1静态成员的概念及使用 class person public : static int personCount; static int GetPersonCount() return personCount; ; 类的静态成员为其所有对象所共享,不管有多少对象,静态成员只有一份存于 公用内存中。 第7章 类的概念与定义 IC-MSP 7.2 C+语言中的类 7.2.1 静态成员和常量成员 1静态成员的概念及使用 l 类的静态成员为其所有对象所共享,不管有多少对象,静态成员只有一份存 于公用内存中。 l 在类中说明的静态数据成员属于引用性说明。 类型 类名:静态数据成员 = 初值; 必须在类外文件作用域中的某个地方对静态数据成员按如下格式进行 定义性说明 第7章 类的概念与定义 IC-MSP 7.2 C+语言中的类 7.2.1 静态成员和常量成员 1静态成员的概念及使用 静态成员是属于类的。 第7章 类的概念与定义 IC-MSP 7.2 C+语言中的类 7.2.1 静态成员和常量成员 1静态成员的概念及使用 静态成员的访问方法: 静态成员可以不通过对象访问,而是通过类访问 ,即使没有创建任何对 象: cout 7.2 C+语言中的类 7.2.1 静态成员和常量成员 1静态成员的概念及使用 静态关键字用于声明: 局部静态变量 全局静态变量 具有静态存储类别 的函数 类的静态数据成员 类的静态函数成员 第7章 类的概念与定义 IC-MSP 7.2 C+语言中的类 7.2.1 静态成员和常量成员 1静态成员的概念及使用 1)局部静态变量 函数或块的内部说明的静态变量 作用域仅局部于函数或块 2)全局静态变量 在所有函数的外部说明 具有单文件级全局性的静态变量 第7章 类的概念与定义 IC-MSP 7.2 C+语言中的类 7.2.1 静态成员和常量成员 1静态成员的概念及使用 3)静态函数 具有静态存储类别的函数(有时也称为内部函数) 只能在本文件的内部被调用 在其他文件中不能调用这种函数 4)类的静态数据成员 static 修饰的类中的数据成员。 为该类的所有对象所共享 第7章 类的概念与定义 IC-MSP 7.2 C+语言中的类 7.2.1 静态成员和常量成员 1静态成员的概念及使用 静态数据成员 静态成员函数 非静态数据成员 非静态成 员函数 5)类的静态函数成员 由关键字static 修饰的类中的函数成员 类的静态函数成员没有this指针 通常只在其中处理类的静态数据成员值 x 第7章 类的概念与定义 IC-MSP 7.2 C+语言中的类 7.2.1 静态成员和常量成员 2常量成员 加了“const”关键字,则此成员就是常量成员。 l常量数据成员 只能在对象被说明时通过构造函数的成员初始化列表的方式来赋初值 一旦对象被创建,其常量数据成员的值就不允许被修改 第7章 类的概念与定义 IC-MSP 7.2 C+语言中的类 7.2.1 静态成员和常量成员 2常量成员 l常量函数成员 类的函数成员也可以被说明为常量类型。 常量类型的函数成员只有权读取相应对象(即调用者对象*this)的内容, 但无权修改它们。 类型说明符 函数名(参数表) const; 修饰符const要加在函数说明的尾部(若放在首部的话,则是对函数值的 修饰),它是函数类型的一部分。 第7章 类的概念与定义 IC-MSP 7.2 C+语言中的类 7.2.2 友元函数和友元类 1.友元的性质和作用 面向对象程序设计主张程序的封装,数据的隐藏 友元的概念是C+语言为用户提供的在局部打破这种封装和隐藏的手段 friend 说明友元 位于一个函数说明语句之前,指出该函数为这个类的友元函数; 位于一个类名之前,指出该类是这个类的友元类。 第7章 类的概念与定义 IC-MSP 7.2 C+语言中的类 7.2.2 友元函数和友元类 1.友元的性质和作用 在类A 中说明的友元的特点: 1)它不是A 的函数成员; 2)f 的定义可以在类A 的说明内,也可以在类外; 3)函数f 虽不是A 的成员,但有权访问和调用A 的所有私有及保护成员。 class A friend int f(int a); friend class B; ; 第7章 类的概念与定义 IC-MSP 7.2 C+语言中的类 7.2.2 友元函数和友元类 1.友元的性质和作用 在类A 中说明的友元类B如下所示: 1)它可能是与A 无关的另外一个类; 2)要在类外说明; 3)B 的任一函数都有权访问和调用类A 的所有成员,包括私有及保护成员。 第7章 类的概念与定义 IC-MSP 7.2 C+语言中的类 7.2.2 友元函数和友元类 1.友元的性质和作用 友元的特点: 1)“单方向” 2)“不继承” 3)“不传递” ClassB ClassC ClassA 友元 友元 ? ? ClassD: public B ? 第7章 类的概念与定义 IC-MSP 7.2 C+语言中的类 7.2.2 友元函数和友元类 2. 友元的使用 class complex /自定义的复数类型complex double real; /复数实部 double imag; /复数虚部 public: complex(); /无参构造函数 complex(double r, double i); /2 参构造函数 friend complex addCom(complex c1, complex c2); friend void outCom (complex c); /友元函数,输出complex 类对 象c 的有关数据(各分量) ; 第7章 类的概念与定义 IC-MSP 7.2 C+语言中的类 7.2.3 运算符重载 1运算符重载的使用范围 C+语言规定,大多数运算符都可以重载。 l单目运算 运算符类型表示符 算术运算- 位运算,! 自增,自减运算+,- 内存操作运算new,delete 第7章 类的概念与定义 IC-MSP 7.2 C+语言中的类 7.2.3 运算符重载 1运算符重载的使用范围 l双目运算 运算符类型 表示符 算术运算 +,-,*,/,% 位运算 return TRUE; bool operator*(bool a,bool b) if(a=TRUE) return FALSE; bool operator-(bool a) if(a=FALSE) return TRUE; return FALSE; 第7章 类的概念与定义 IC-MSP 7.2 C+语言中的类 7.2.3 运算符重载 3重载运算符的调用 运算符重载函数的调用有以下3种方式: 1)与原运算符相同的调用方式, 如b1+b2,b1*b2等; 2)一般函数调用方式,如b1+b2,也可以写为operator+(b1,b2)被重载 的运算符的调用方式,优先级和运算顺序都与原运算符一致,其运算分量的个 数也不可改变; 3)运算符重载主要用于用类的形式定义的用户定义类型 第7章 类的概念与定义 IC-MSP 小结 本章主要讲解C+面向对象基础知识 l类的静态成员和常量成员 l友元类 l运算符重载 第7章 类的概念与定义 IC-MSP 自测题 1C+只能做面向对象的程序开发,而不能做面向过程的程序开发。( ) 2析构函数和构造函数都是可以重载的。( ) 3类中的数据成员默认类型为私有。( ) 4友员函数不能直接访问类中的私有成员,只能通过对象访问私有成员。( ) 第7章 类的概念与定义 IC-MSP 自测题 1C+只能做面向对象的程序开发,而不能做面向过程的程序开发。( X ) 2析构函数和构造函数都是可以重载的。( X ) 3类中的数据成员默认类型为私有。( ) 4友员函数不能直接访问类中的私有成员,只能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑工程专业面试题库及答案版
- 施工现场高空降落物防护方案
- 云南楚雄面试真题及答案
- 智算中心灾难恢复与应急响应方案
- 2025商法学试题及答案
- 2025年商法学概述试题及答案
- 万兆园区设备管理系统整合方案
- 2025年贸易实务试题及答案
- 2025年全民科学素质竞赛网络知识竞赛试题库及答案(共50题)
- 光伏项目投产后的数据监测方案
- 涉密采购保密协议书
- 财务岗笔试试题及答案
- 鱼油制品质量控制-全面剖析
- 耳石症课件教学课件
- 2025年人教版小学四年级下册奥林匹克数学竞赛试卷(附参考答案)
- 语音主播协议合同
- 蜜雪冰城加盟合同(2025年版)
- 河道人工保洁作业指导书
- (一模)2025年3月济南市2025届高三模拟考试历史试卷(含答案解析)
- 拆除重建工程施工方案
- 油田突发污染事件应急预案
评论
0/150
提交评论