第十二周阅读程序(4)

来源:互联网 发布:淘宝实名小号收购 编辑:程序博客网 时间:2024/06/05 19:32

问题及代码:

#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;}  


运行结果:

问题:

将程序中有注释的两条语句修改为注释的内容,即将“class B:public A {};”修改为“class B:virtual public A{};”,“class C:public A {}; ”修改为“class C:virtual public A{};”,重新编译运行程序,程序的运行结果又是多少?

代码:

#include<iostream>using namespace std;class A{public:    int n;};class B:virtual 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;}


运行结果:

0 0
原创粉丝点击