05第五讲静态成员与友员.ppt

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

* 本讲小结 掌握静态成员函数的使用 熟悉友元的应用。 作业: 利用静态成员,实现阶乘。 程序实现一个矩阵与竖向量相乘。 * * * * * * * * * * * * * * * * * * * * * OOP C++ * 第五讲 静态成员与友 元 * 复习 1. 常数据成员的值是怎样获得的? 2. 常成员函数的优势是什么? 3. 对于下面定义的类MyClass,在函数f()中将对象成员n的值修改为50的语句应该是( )。 class MyClass{ public: Myclass(int x){n=x; ) void SetValue(int n1)(n=nl;) private: int n; }; int f( ){ MyClass *ptr=new MyClass(45); ________; } A) MyClass(50) B)SetValue(50) C) ptr-SetValue(50) D) ptr-n=50 答案:C * 本讲主要内容 静态数据成员 静态成员函数 友元函数 友元类 * 引言 静态成员不是属于某个对象的,而是属于类的,它是某个类的所有对象共有的. 静态成员分类: 静态数据成员 静态成员函数 * 1. 静态数据成员 静态数据成员作为类的一种成员,它被所用的对象共有,不是属入某个对象的。 一处存储,所有的类对象都可以使用,可以节省内存。 一处更改,所有的都被更新。 静态数据成员定义 在成员名的类型说明符前面加上关键字: static 如: class A { private: int a; static b; ….. * 静态数据成员 静态数据成员的初始化: 静态数据成员被定义后,必须对它进行初始化,初始化在类体外进行,一般放在该类实现部分最合适的位置。 静态数据成员的初始化与构造函数无关。 初始化的格式为: 数据类型 类名::静态数据成员名=初始值; 在初始化是,不要加上static 关键字。 * 静态数据成员 静态数据成员的引用 类名::静态数据成员名 也可以采用对象来应用(C#只允许类来引用),建议不要采用对象来引用。 * 例题1 编写程序实现一所大学要统计开学报到的学生人数。程序中定义了一个学生类,其中定义了一个静态变量成员,用来跟踪记录报到的学生人数,以便随时掌握报到信息。(j501.cpp) 参考答案 class student { public: static int c; int stu() { c++; return c; } }; int student::c =0; * 练习 1.下列关于构造函数的描述中,错误的是_________。 A)构造函数可以设置默认参数 B)构造函数在定义类的变量时被自动执行 C)构造函数可以对静态数据成员进行初始化 D)构造函数可以重载 答案 C 2.下面对静态数据成员的描述中,正确的是________。 A)静态数据成员是类的所有对象共享的数据 B)静态数据成员不能通过类名来访问 C)类的不同对象有不同的静态数据成员值 D)静态数据成员不能通过类的对象调用 答案A * 3. 下列静态数据成员的特性中,________是错误的。 A)说明静态数据成员时前边要加修饰符static B)静态数据成员要在构造函数内进行初始化 C)可以直接使用类名来访问静态数据成员,方法是在静态数据成员名前加类名和作用域限度符 D)静态数据成员是所有对象所共用的 答案 B 4. 下面对静态数据成员的描述中,( )是正确的。 A)静态数据成员可以在类体内进行初始化 B)静态数据成员不可以被类的对象来访问 C)静态数据成员不能设置为protected D)静态数据成员可以直接用类名来访问 答案 D * 5. 若有以下程序: #include iostream.h class sample{ int n; public: sample(int i){ n=i;} void add(){s+=n;} static int s; void

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档