POJ C++程序设计 编程题#10:输出指定结果二

编程题#10:输出指定结果二

来源: 北京大学在线程序评测系统POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)

总时间限制: 1000ms 内存限制: 1024kB

描述

通过填空使得程序输出的结果符合下面的要求。

#include <iostream>
#include <map>
using namespace std;
// 在此处补充你的代码
int A::count = 0;
void func(B b) { }
int main()
{
        A a1(5),a2;
        cout << A::count << endl;
        B b1(4);
        cout << A::count << endl;
        func(b1);
        cout << A::count << endl;
        A * pa = new B(4);
        cout << A::count << endl;
        delete pa;
        cout << A::count << endl;
        return 0;
}

 

输入

不需要输入。

 

输出

使得程序的输出结果是:

2

3

B::destructor

A::destructor

3

4

B::destructor

A::destructor

3

B::destructor

A::destructor

A::destructor

A::destructor

 

样例输入

不需要输入。

 

样例输出

2
3
B::destructor
A::destructor
3
4
B::destructor
A::destructor
3
B::destructor
A::destructor
A::destructor
A::destructor

 

提示

int A::count = 0; 这个变量是用来记录一共有多少个类A及类A的派生类的对象的。

 1 #include <iostream>
 2 #include <map>
 3 using namespace std;
 4 // 在此处补充你的代码
 5 class A {
 6 public:
 7     static int count;
 8     A(){count++;}
 9     A(int a) {count++;}
10     virtual ~A(){
11         cout<<"A::destructor"<<endl;
12     }
13     void operator delete(void *a) {
14         count--;
15     }
16 };
17 class B:public A {
18 public:
19     B():A(){}
20     B(int b):A(){}
21     B &operator=(B &b) {
22         return b;
23     }
24     virtual ~B(){
25         cout<<"B::destructor"<<endl;
26     }
27 };
28 int A::count = 0;
29 void func(B b) {}
30 int main()
31 {
32     A a1(5),a2;
33     cout << A::count << endl;
34     B b1(4);
35     cout << A::count << endl;
36     func(b1);
37     cout << A::count << endl;
38     A * pa = new B(4);
39     cout << A::count << endl;
40     delete pa;
41     cout << A::count << endl;
42     return 0;
43 }

 


 

转载于:https://www.cnblogs.com/dagon/p/4833710.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值