zoukankan      html  css  js  c++  java
  • 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 }

  • 相关阅读:
    跳转练习
    从入门到自闭之Python--Redis
    从入门到自闭之Python--Django Rest_Framework
    从入门到自闭之Python--RESTful API规范与序列化
    从入门到自闭之Python--虚拟环境如何安装
    从入门到自闭之Python集合,深浅拷贝(大坑)
    从入门到自闭之Python编码
    从入门到自闭之Python字典如何使用
    从入门到自闭之Python列表,元祖及range
    从入门到自闭之Python整型,字符串以及for循环
  • 原文地址:https://www.cnblogs.com/dagon/p/4833710.html
Copyright © 2011-2022 走看看