- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C多继承
C++多继承最容易出现继承同名函数的问题,编译器报错为
test.cpp:In function int main(int,char**):
test.cpp:34:error:request formember showisambiguous
test.cpp:16:error:candidatesare:voidbaseB::show()
test.cpp:7:error: virtualvoidbaseA::show()
报错关键字为……isambiguous ……candidatesare
那么如果解决呢,分几种情况:
三角继承,C 同时继承于A,B,而A,B中都有一个同名函数
classA classB
void show(); void show();
classC
#includeiostream
usingnamespace std;
classbaseA
{
public:
virtualvoid show()
{
coutbaseAshow;
}
};
classbaseB
{
public:
void show()
{
coutbaseB show;
}
};
classchild :publicbaseA,publicbaseB
{
public:
};
intmain(int args,char*argv[])
{
child ch;
ch.show();
cout\n;
return 0;
}
这时如果C的对象调用show()函数,编译器将无法识别要调用A的还是B的,解决的办法是
指定show()所在的类.
((baseB)ch).show();//把它强制转换为所要调用的基类
当然,如果你在子类中重写了函数,不会有二义性,如:
classchild :publicbaseA,publicbaseB
{
public:
void show()
{
coutchild show;
}
};
ch.show();将调用子类的show()函数.
菱形继承,这比如说有一个基类base,有一个函数show(),baseA,baseB 都继承base,这时
baseA 和baseB 都有函数show(),如果这时类child 同时继承baseA,baseB,如果child 的对
象调用show()函数,编译器也将不知道调用baseA 的还是baseB 的.
classbase
void show()
classbaseA classbaseB
classchild
#includeiostream
usingnamespace std;
classbase
{
public:
void show()
{
coutbaseshow;
}
};
classbaseA :publicbase
{
};
classbaseB :publicbase
{
};
classchild :publicbaseA,publicbaseB
{
};
intmain(int args,char*argv[])
{
child ch;
//ch.show();
您可能关注的文档
- 2014建设工程经济精讲讲义.pdf
- 2014毕业论文学生用表(人文管理类) 2.pdf
- 2014年某某金属表面处理建设项目环境影响报告书.pdf
- 2014年第9期中国房地产市场监测报告.pdf
- 2015山财宏观期末复习重点内容解析.pdf
- 2015.4会展管理信息系统试题.pdf
- 2015年北京高考听力真题(附答案).pdf
- 2015年护士资格考点:护理程序每日一练(1月19日).pdf
- 2015年黄冈市高考质量综合评价方案.pdf
- 2014年某某工业异辛烷项目环境影响报告书.pdf
- 农村建房合同包工包料范本(4篇) .pdf
- 写临时救助申请书推荐6篇 .pdf
- [课件]【新学期规划课】2021年高考离你还多久.pdf
- 养猪场抵押合同范本6篇 .pdf
- 关于预防艾滋病的演讲稿(真题5篇) .pdf
- 2024年外研版天津专版高中英语一轮复习课件 写作专项提升 第2讲 写对3类复合句.pdf
- 2024年外研版天津专版高中英语一轮复习课件 写作专项提升 第2讲 记叙文.pdf
- 2024年外研版天津专版高中英语一轮复习课件 写作专项提升 第1讲 应用文.pdf
- 2024年外研版天津专版高中英语一轮复习课件 写作专项提升 第1讲 写对8种基本句型.pdf
- 2024年外研版天津专版高中英语一轮复习课件 写作专项提升 第1讲 词汇优美4角度.pdf
最近下载
- 《抽象代数基础+》完整习题解答.pdf
- 数控机床装调维修工竞赛试题及评分标准.doc VIP
- 教科版科学四年级上册全册大单元整体教学设计.pdf VIP
- 上头的电子烟的秘密+禁毒系列知识科普之—依托咪酯主题班会.pptx VIP
- 二氧化碳的实验室制取说课汇总市公开课金奖市赛课一等奖课件.pptx
- 2024年中级消防员职业鉴定理论考试题库(浓缩500题).docx
- (2023正式版)YST 1681-2023 变形铝及铝合金熔体离线渣含量检测方法 .docx VIP
- 数控机床装调维修工实操考试试题.doc VIP
- 2022年山东省职业院校技能大赛(中职组)“机械装配技术”赛项试题(A).docx VIP
- 客运站安全生产培训.pptx VIP
文档评论(0)