技培训四.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
技培训四

C++面向对象程序设计 主讲人:曹宣俊 目录 静态成员 类成员指针 this指针 子对象 堆对象 常对象 函数模板 类模板 类静态成员 静态成员分为:静态数据成员和静态成员函数 静态数据成员 静态数据成员是类的所有对象共享的成员,而不是某个对象的成员。使用静态数据成员可以节省内存,因为它是所有对象所共有的,只需存储一处,供所有对象共用。静态数据成员的值对每个对象都是一样的,但是它的值是可以更新的。 静态数据成员定义方法 1,在一般数据成员前加关键字static 2,静态数据成员初始化与一般数据成员初始化不同。其初始化如下: 数据类型 类名::静态数据成员名= 值; 这说明:初始化在类体外进行,而前面不加static,以免与一般静态变量或对象相混淆。 初始化时不加该成员的访问权限控制符private,public等 初始化时使用作用域来表明它所属的类 静态成员必须进行初始化。 引用静态数据成员时,既可以通过对象引用,也可以采用如下格式: 类名::静态数据成员名 示例程序 class A { static int a; }; void main() { coutsizeof(A)endl; } class A { int a; }; void main() { coutsizeof(A)endl; } 前者执行结果是1,后者是4.从而可见静态数据成员节省内存空间 静态成员函数 静态成员函数是类的静态成员,而不是对象成员。 定义方式是在普通成员函数前加static 调用静态成员函数时既可以通过对象来调用,也可以通过类来调用。 在静态成员函数的实现中,不能直接引用类中说明的非静态成员,但是可以引用类中说明的静态数据成员。如果静态成员函数中要引用非静态成员时,则可通过对象来调用。 示例程序 class Sampl { private: int n; static int m; public: Sample(int i) { n=i; m+=i; } Static void disp(Sample c) { cout“n=”c.n“,m=”mendl; } }; 示例程序 int Sample::m= 2; void main() { Sample A(2),B(4); A.disp(B);//通过对象A调用静态成员函数 Sample::disp(A);//通过类调用静态成员函数 } 该程序的执行结果如下: n=4,m=8 n=2,m=8 类成员指针 类成员指针 包括类数据成员指针和类成员函数指针 类数据成员指针一般定义格式如下: 类型 类名::数据成员指针名 由于类不是运行时存在的对象,因此,使用类数据成员指针时,需要首先指定类的一个数据成员,然后通过类的对象来引用指针所指向的成员。 示例程序(类数据成员指针) class Sample { public: void disp() { cout“m=”mendl; cout“n=”nendl; } int m,n;//公有数据成员 }; void main() { int Sample::*p = Sample::m; Sample a; a.*p=10;//等价于a.m=10 } 类成员函数指针 指向类成员函数的指针定义格式如下: 类型(类名::*成员函数指针名)(参数表) 给类成员函数指针赋值的格式如下: 指向成员函数的指针名=函数名 程序中使用指向函数的指针调用函数的格式如下: (*指向函数的指针名)(实参表) 示例程序 class Sampl { private: int n,m; public: void setm(int i){n=i;} void setn(int i){ n=i; } void disp() { cout“n=”n“,m=”mendl; } }; void main() { void (Sample::*pfub)(int); Sample a; pfun=Sample::setm; (a.*pfun)(10); //等价于a.setm(10); } this指针 在设计好一个类后,通过定义类对象来调用类的成员函数,其使用格式为: 对象.成员函数 在C++中,每个当前对象都隐含一个指向该对象的指针,即this指针。显然,this指针的类型就是成员函数所属的类的类型 示例程序 class Sampl { private: int n; public: Sample(int m){ n=m;} void addvalue(int m) { Sample s; s.n=n+m; *this = s; } void disp() { cou

文档评论(0)

186****0507 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档