POJ C++程序设计 编程题#10:输出指定结果二
2015-09-23 22:15
603 查看
编程题#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的派生类的对象的。#include <iostream> #include <map> using namespace std; // 在此处补充你的代码 class A { public: static int count; A(){count++;} A(int a) {count++;} virtual ~A(){ cout<<"A::destructor"<<endl; } void operator delete(void *a) { count--; } }; class B:public A { public: B():A(){} B(int b):A(){} B &operator=(B &b) { return b; } virtual ~B(){ cout<<"B::destructor"<<endl; } }; 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; }
相关文章推荐
- 【C语言】编写函数实现:100-200素数的输出
- C语言的谜题
- C语言函数学习整理
- c++字符串处理操作
- More Effective C++ 条款19 了解临时对象的来源
- 写一个函数返回参数二进制中 1 的个数
- C语言中,为什么字符串可以赋值给字符指针变量
- 【C语言】给定两个整型变量的值,将两个值的内容进行交换(不同方法)
- 求10 个整数中最大值
- 不允许创建临时变量,交换两个数的内容
- 如何看懂C语言程序
- c语言编译过程!!!
- 用C语言编写:求10 个整数中最大值
- c++primer plus第十三章-抽象基类、纯虚函数及本章总结
- C++利用结构
- 玩转Google开源C++单元测试框架Goo…
- c++继承与派生
- c语言学习笔记(5)enum和typedef分析
- 输入十个数,输出其中最大的一个数
- c++primer第三章习题(2)