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

转载于:https://www.cnblogs.com/123zhh-helloworld/p/9084583.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值