- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8.3.2拷贝构造函数和默认拷贝构造函数 程序分析 该程序中的类TPoint1中,定义了一个带有两个参数的构造函数和一个拷贝构造函数,还有一个析构函数。在main()中,先嗲用构造函数创建一个对象p1,又通过两次调用拷贝构造函数创建2个对象p2和p3,接着输出显示对象p3的2个私有成员值,这是通过调用成员函数实现的。 8.4 成员函数的特征 8.4.1内联函数和外联函数 类的成员函数可以分为内联函数和外联函数两种,定义在类体内的成员函数为内联函数,调用该函数时不需转向执行函数体,而是用函数体的代码进行替换,这样减少开销,提高运行效果.定义在类体外的成员函数称为外联函数.如果定义的类体内的成员函数转为内联函数,只需在定义函数的函数头前加关键字inline. 例86程序分析: 程序中,在类XY中,定义了5个成员函数,其中一个是构造函数,另外有两个成员函数fun1()和fun2()是内联函数,还有两个成员函数虽然定义在函数体外,但是由于加了关键字inline,也成为了内联函数,它们是fun3()和fun4(). 8.4.2成员函数的重载性 例87 8.4.3成员函数可以设置默认参数 例88 8.5静态成员 全局对象是实现数据共享的一种方法,但是,这种方法有局限性.它的局限性表现在由于它处处可见,因此,不够安全.为了安全起见,应尽量在程序中少用全局对象.要实现类的多个对象之间的数据共享,可以使用静态成员,这便是引进静态成员的原因. 静态成员不属于某个对象的,而是属于类的.它是某个类所有对象所共有的. 静态成员和静态对象是两个不同的概念.静态成员是描述类的某个成员的特性,它是与类相关的.静态对象是描述某个类的对象的作用域,文件作用域的静态对象是在主函数运行之前便构造完毕,作用域是定义它的文件;块作用域的静态对象是首次进入定义该对象的程序块时进行构造的,并只构造一次,其作用域是定义它的程序块. 静态成员有两种:一是静态数据成员,二是静态成员函数. 8.5.1静态数据成员 静态数据成员作为类的一种成员,它被类的所有对象共享,而不是属于某个对象的.在存储上只需存储一处,就可以供所有对象使用.因此,可以节省内存.静态数据成员由于是共用的,它的值对每个对象都是一样的.静态数据成员的值可以被更新.只要对静态数据成员的值更新依次,所有对象的该静态数据成员值都被更新,并且值是相同的,这样可以提高效率. 1.静态数据成员的定义或说明 静态数据成员定义或说明在类体内,在该成员名的类型说明符前边加关键字static.例如: class A { … private: int a; static int b; }; 其中,类A中定义了一个私有的静态数据成员b,它是int型的。而数据成员a是一般的私有数据成员。 2.静态数据成员的初始化 静态数据成员被定义后,必须对它进行初始化.初始化在类体外进行,一般放在该类的实现部分是最合适,也可以放在其他位置,例如,放在主函数前面等. 静态数据成员的初始化与该类的构造函数和析够函数无关,它的初始化格式如下: 数据类型类名::静态数据成员名=值; 这里,使用了作用域运算符“::”,来说明静态数据成员所属的类.在初始化时,不加关键字static,以免与静态对象相混淆.例如, class B { public: B(int i); … private: int a; static int b; }; B::B(int i) { a=i; cout“Creat one object\n”; } int B::b=5; … 这段程序中,在类B中,定义了一个静态数据成员b;在类体外的实现部分,对静态数据成员b进行了初始化,使它获值为5. 定义静态数据成员时,可根据需要规定它的访问权限控制符,可为public,private,protected.静态数据成员是静态生存期的,即它的寿命是长的,只对它进行一次初始化,将始终保持其值,直到下次改变为止. 静态数据成员引用格式: 类名::静态数据成员名 由于静态数据成员是一种类的数据成员,因此,使用对象引用也是可以的,但这时用的是对象的类型. 8.5.2静态成员函数 对静态成员函数的说明和定义也与静态数据成员一样,在成员函数名前的类型说明符前加关键字static,函数实现可在类体内,也可在类体外,与一般成员函数相同. 在静态成员函数的实现中,可以直接引用静态成员,但不能直接引用非静态成员,如果非要引用非静态成员时,可通过对象来引用. 对静态成员函数的引用,在程序中一般使用下列格式: 类名::静态成员函数(参数) 有时,
您可能关注的文档
最近下载
- 高中英语(人教版)必修三词汇表默写.docx VIP
- 最全无缝钢管尺寸规格表.docx VIP
- 【北师大版】2024-2025学年六年级数学上册期末检测试卷(含答案).docx VIP
- CA6140普通车床的数控化改造设计_毕业设计.doc VIP
- 古代汉语《论语》三十章(南京大学高小方)教材.docx VIP
- DB45_T2473-2022:消防设施维护保养规程.pdf VIP
- 毕赤酵母发酵手册.pdf VIP
- 防工程钢筋混凝土门产品质量检验报告(2024年版).pdf VIP
- 论持久战全文--毛泽东_txt下载.docx VIP
- 小学数学新人教版二年级下册 二 第1课时 数量间的乘除关系、倍的认识 教学课件(2026春).pptx VIP
原创力文档


文档评论(0)