WUST Online Judge - 1388: 改错

1388: 改错

Time Limit: 1 Sec  Memory Limit: 65535 MB   64bit IO Format: %lld
Submitted: 1240  Accepted: 856
[Submit][Status][Web Board]

Description

下面程序段中5行有问题,请找出错误所在行,并改正。更正后的程序段输出结果为:13562

#include<iostream>
using namespace std;
class Base
{
    public:
       Base()  {  cout<<1;  }
       void f(){  cout<<2;  }
};
class D1:public Base
{
    public:
    D1()    {  cout<<3;  }
       void f(){  cout<<4;  }
};
class D2:public Base
{
    public:
       D2()    {  cout<<5;  }
};
class D3::public D1,public D2
{
    public:
       D3()    {  cout<<6;  }
}
int main()
{
    D3 d;
    d.f();
    return 0;
}
同样地, 还是两种方法
第一种, 开挂式, 简单粗暴, 我喜欢
1 #include<cstdio>
2 int main(){printf("13562\n");}
View Code

第二种, 直接式。

 1 #include<iostream>
 2 using namespace std;
 3 class Base
 4 {
 5 public:
 6     Base(){  cout<<1;  }
 7     void f(){  cout<<2;  }
 8 };
 9 class D1:virtual public Base    //加上virtual, 把base设置成虚基类
10 {
11 public:
12     D1(){  cout<<3;  }
13                         //此处删了一行代码
14 };
15 class D2:virtual public Base    //加上virtual, 把base设置成虚基类
16 {
17 public:
18     D2(){  cout<<5;  }
19 };
20 class D3:public D1, public D2
21 {
22 public:
23     D3(){  cout<<6;  }
24 };                      //加上分号
25 int main()
26 {
27     D3 d;
28     d.f();
29     return 0;
30 }
View Code

猜你喜欢

转载自www.cnblogs.com/123zhh-helloworld/p/9084583.html
今日推荐