- 0
- 0
- 约7.67千字
- 约 40页
- 2018-01-25 发布于浙江
- 举报
ch11数据共享和成员特性C教学课件
C++实用教程 第11章 数据共享和成员特性 目录 11.1 静态成员 11.2 友元 11.3 成员其他特性 11.4 this指针 11.5 综合应用实例 11.1 静态成员 如果类的某些属性希望他的所有对象共享,怎么办? 数据共享途径: 途径一:全局变量或全局对象 具有局限性 破坏程序模块结构 属于程序,而不属于类 途径二:静态成员 11.1 静态成员 静态成员是类中的成员,是类的一部分,在类外不可访问,从而起到保护作用。 静态成员有静态数据成员和静态成员函数之分。 静态数据成员与静态变量相似,具有静态生存期,是在类中声明的全局数据成员,能被同一个类的所有对象所共享。 公有静态成员函数不仅可以通过类对象来访问,还可通过“类名::静态成员函数”的形式在程序中直接调用。 11.1.1 静态数据成员 使用静态数据成员可以节省内存,因为它只存储一处,供所有对象共享。静态数据成员的值是可修改的,但它对每个对象都是一样的。 1. 定义和使用 与静态变量相似,静态数据成员是静态存储(static)的,它必须按下列两个步骤进行: 在类中使用关键字static声明静态数据成员。 在类外为静态数据成员分配内存空间并初始化。 其定义格式如下: [例Ex_StaticData] 静态数据成员的使用示例 #include iostream using namespace std; class CSum { public: CSum(int a = 0, int b = 0) // A { nSum += a+b; } int getSum() { return nSum; } void setSum(int sum) { nSum = sum; } private: static int nSum; }; int CSum::nSum = 0; int main() { CSum one(10, 2), two; coutone: sum = one.getSum()endl; couttwo: sum = two.getSum()endl; two.setSum(5); coutone: sum = one.getSum()endl; couttwo: sum = two.getSum()endl; return 0; } 2. 几点说明 (1)静态数据成员是类中的成员,它的访问属性同普通数据成员一样,可以为public、private和protected。 (2)静态数据成员的实际定义和初始化本身是不受public、private和protected等访问属性限制的。 (3)静态数据成员可看成是类中声明、类外定义的静态全局变量,具有静态生存期,在程序中从实际定义时开始产生,到程序结束时消失。 (4)当静态数据成员为public时,在类外对该成员的访问和引用可通过对象,也可直接引用。 例: class CSum { //… public: Static int nSum; }; int CSum::nSum=0; int main() { CSum one; one.nSum=10; CSum::nSum=12; coutone.nSumendl; return 0; } 11.1.2 静态成员函数 静态成员函数和静态数据成员一样,都属于类的静态成员,但它们都不专属于某个对象,而是所有对象所共享的成员。对公有(public)静态成员函数来说,除可用对象来引用外,也可通过“类名::成员”直接来引用。 在类中,静态数据成员可以被成员函数或静态成员函数所引用。但反过来,静态成员函数却不能直接引用类中说明的非静态成员。 例: class CSum { public: static void ChangeData(int data) { nSum=data; //Error } public: int nSum; }; [例Ex_StaticMember] 静态成员的使用示例 11.1 静态成员 11.2 友元 11.3 成员其他特性 11.4 this指针 11.5 综合应用实例 11.2.1 友元概述 11.2.2 友元函数 友元函数分为友元外部函数和友元成员函数。 当一个函数f是A类的友元,还是另一个类B的成员函数时,这样的友元称为友元成员函数。 若f不属于任何类的成员,这样的友元称为友元外部函数。友元外部函数常直接称为友元函数。 1. 友元函数(友元外部函数) 友元函数不属于类中的成员函数,是在类中声明的一个外部函数 友元函数的定
您可能关注的文档
- 9学会做人 大学生心理健康教育 教学课件.ppt
- 9年级时态复习 中学英语语法复习之时态和语态.ppt
- 9技术贸易1 中国对外贸易概论 课件.ppt
- 9拟肾上腺素药1 药物化学 教学课件.ppt
- 9德国新闻史2 外国新闻传播史 教学课件.ppt
- 9故维第九章典型故障 计算机常见故障维护 教学课件.ppt
- 9方法概述成本会计课件打印版.pdf
- 9月7-13日MPA逻辑试题.doc
- 9案例研究方法 管理研究方法论 教学课件 流管理专业.ppt
- 9基本放大电路 电子技术课件.ppt
- CH11 战略变革 公司战略管理 教学课件.ppt
- ch11 数据库管理与安全 Access数据库应用基础教程(第三版) 教学课件.ppt
- CH11 面向对象设计与UML 经典软件工程PPT 教学课件.ppt
- CH11-CH12-CH13 行政单位会计概述、资产、负债 非盈利单位会计 教学课件.ppt
- ch11货币政策 金融学(货币银行学)教学课件.ppt
- ch12 - GUI设计基础 Java语言程序设计基础篇课件.ppt
- Ch12 Analysis of Variance Tests 商务统计学概论(英文第四版)教学课件 Introduction to Business Statistics.ppt
- CH12 ANOVA of repeated measurement data. ppt Medical Statistics医学统计学 教学课件.ppt
- Ch11.气候系统和全球变暖 大气科学导论课件.ppt
- ch12 National Income Accounting and the Balance of Payments 国际商务硕士 国际经济学 教学课件.ppt
最近下载
- 2025最新初一道德与法治思维导图全套.docx VIP
- 二年级口算题.doc VIP
- 九年级科学上册第4章代谢与平衡知识点归纳(新版)浙教版.pdf VIP
- 2025中国热带农业科学院海口实验站第一批招聘21人笔试题库(第1号)附答案解析.docx VIP
- SULZER苏尔寿MBN-RO 多级节段式高压离心泵产品手册.pdf
- 小学六年级语文(小升初)修改病句专项练习题(含答案) .pdf VIP
- 北京市西城区八年级上学期期末数学试题及答案.pdf VIP
- 一年级语文下册写字表笔画笔顺组词造句(打印版).pdf VIP
- 2025年综合类-心理治疗(师)-专业知识历年真题摘选带答案(5卷-选择题).docx VIP
- 二年级口算题.pdf VIP
原创力文档

文档评论(0)