码迷,mamicode.com
首页 > 其他好文 > 详细

补充阅读程序-4

时间:2016-05-12 17:39:51      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:

/*copyright(c)2016.烟台大学计算机学院
02. * All rights reserved,
03. * 文件名称:text.Cpp
04. * 作者:刘涛
05. * 完成日期:2016年5月9日
06. * 版本号:vc++6.0
07. */

#include<iostream>
using namespace std;
class A
{
public:
   int n;
};
class B:public A {};   // class B:virtual public A{};
class C:public A {};   // class C:virtual public A{};
class D:public B,public C
{
public:
    int getn() {return B::n;}
};
int main()
{
   D d;
   d.B::n=10;
   d.C::n=20;
   cout<<d.getn()<<endl;
   return 0;
}
运行结果:
<img src="http://img.blog.csdn.net/20160510143442706?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
分析:此题中,B,C都是A的派生类,所以在主函数调用的时候前面要加上类名::来区别,又因为D为B,C的派生类,所以return的时候return的是B::的n,所以是10.
<img src="http://img.blog.csdn.net/20160510143747413?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
当引入虚基类的时候,问题则得到了解决。

补充阅读程序-4

标签:

原文地址:http://blog.csdn.net/lemon_lebron/article/details/51362965

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!