- 2
- 0
- 约3.66千字
- 约 21页
- 2018-10-15 发布于浙江
- 举报
类成员标识与访问.pdf
《面向对象程序设计-C++》
4.面向对象编程技术-继承与派生
席 磊
信管学院计算机科学系
E-mail:hnaustu@126.com
Tel
河南农业大学计算机科学系 2017年版
4.5类成员的标识与访问(虚基类)
《面向对象程序设计-C++》河南农业大学计算机科学系 河南农业大学计算机科学系 席 磊 2017年版hnaustu@126.com
继承体系中的类型转换规则
派生类对象可以赋值基类对象,反之不可以 (赋值兼容原则)
• Pointp;Circlec;
c=p;
p=c
指向派生类对象的指针可以赋值基类对象的指针 (以public继承)
Point*pPoint=p;
Circle*pCircle =c;
Point*pPoint=c;
Circle*pCircle =p;
《面向对象程序设计-C++》 河南农业大学计算机科学系 席 磊 hnaustu@126.com
二义性问题
• 基类与派生类之间,出现同名成员时,将出现访问时
的二义性(不确定性)——采用虚函数或支配(同名
覆盖)原则来解决。
• 当派生类从多个基类派生,而这些基类又从同一个基
类派生,则在访问此共同基类中的成员时,将产生二
义性——采用虚基类来解决。
《面向对象程序设计-C++》 河南农业大学计算机科学系 席 磊 hnaustu@126.com
二义性问题
《面向对象程序设计-C++》 河南农业大学计算机科学系 席 磊 hnaustu@126.com
二义性的解决方法
• 解决方法一:用类名来限定
c1.A f() 或 c1.B f()
• 解决方法二:同名覆盖
在C 中定义一个同名成员函数f(),f()再根据需要
调用 A f() 或 B f()
《面向对象程序设计-C++》 河南农业大学计算机科学系 席 磊 hnaustu@126.com
同名覆盖原则
•当派生类与基类中有相同成员时:
–若未强行指名,则通过派生类对象使用的是派
生类中的同名成员。
–如要通过派生类对象访问基类中被覆盖的同名
成员,应使用基类名限定。
《面向对象程序设计-C++》 河南农业大学计算机科学系 席 磊 hnaustu@126.com
二义性问题举例
《面向对象程序设计-C++》 河南农业大学计算机科学系 席 磊 hnaustu@126.com
二义性问题举例
《面向对象程序设计-C++》 河南农业大学计算机科学系 席 磊 hnaustu@126.com
二义性问题举例
《面向对象程序设计-C++》 河南农业大学计算机科学系 席 磊 hnaustu@126.com
虚基类
• 虚基类的引入
– 用于有共同基类的场合
• 定义
– 以virtual修饰说明基类
例:classB1virtual publicB
• 作用
– 主要用来解决多继承时可能发生的对同一基
您可能关注的文档
最近下载
- 沉沦郁达夫教学课件.ppt
- 2025 入党积极分子发展对象预备党员考试卷题库(附答案).pdf VIP
- 高考英语词汇3500词-乱序版.pdf VIP
- DB3705_T 08-2023 农村粪污资源一体化利用技术规程.docx VIP
- 2026高考化学疑难杂症:基元反应、速率方程.docx VIP
- DBJT15-147-2018 建筑智能工程施工、检测与验收规范.docx VIP
- CECS19-1990 混凝土排水管道工程闭气检验标准.docx VIP
- 2024年9月21日浙江省事业单位招聘考试《综合应用能力》及答案解析参考.pdf VIP
- 03 云米互联网洗衣机-W9X维修手册-2018.03.19.pdf VIP
- 2025年工业软件CAD系统国产化与标准体系建设.docx
原创力文档

文档评论(0)