有如下程序:includeusing namespace std;elass MyClass{public:MyClass( ){++count;有如下程序: #include<lostreanl> using namespace std; elass MyClass{ public: MyClass( ){++count;} ~MyClass( ){--count;} static int getCount( ){return count;} private: static int count; };

题目
有如下程序:includeusing namespace std;elass MyClass{public:MyClass( ){++count;

有如下程序: #include<lostreanl> using namespace std; elass MyClass{ public: MyClass( ){++count;} ~MyClass( ){--count;} static int getCount( ){return count;} private: static int count; }; int MyClass::count=0; int main( ){ MyClass obj; cout<<obj.getCount( ); MyClass*ptr=new MyClass; cout<<MyClass::getCount( ); delete ptr; cout<<MyCiass::getCount( ); return 0; } 程序的输出结果是

A.121

B.232

C.221

D.122


相似考题
更多“有如下程序:#include<lostreanl>using namespace std;elass MyClass{public:MyClass( ){++count; ”相关问题
  • 第1题:

    有如下程序include include using namespace std;class MyClass {public:M

    有如下程序#include <iostream>#include <iomanip>using namespace std; class MyClass {public:MyClass(){ cout<<'A'; }MyClass(char c){ cout<<c; }~MyClass(){ cout<<'B'; }};int main() {MyClass p1,*p2;p2=new MyClass('X');delete p2;return 0;}执行这个程序屏幕上将显示输出( )。

    A.ABX

    B.ABXB

    C.AXB

    D.AXBB


    正确答案:D

  • 第2题:

    如下程序的输出结果是includeusing namespace std;class MyClass{public:MyClass(int

    如下程序的输出结果是 #include<iostream> using namespace std; class MyClass{ public: MyClass(int i=0){cout<<1;} MyClass(const MyClass&x)}cout<<2;} }; int main( ){ MyClass objl(1),obj2(2),ohj3(objl); return 0; }

    A.112

    B.111

    C.121

    D.113


    正确答案:A
    解析:MyClass objl(1),ohj2(2),obj3(objl);创建objl和obj2对象时调用第一个构造函数,打印1,创建obj3对象时调用第二个构造函数,打印2。

  • 第3题:

    有如下程序: #inClude<iostream> using namespaCe耐: Class MyClass{ publiC: MyClass{++Count;} ~MyClass{--Count;} statiC int getCount{retum Count;} private: statiC int Count; }; ‘ int MyClass::Count=0; int main { MyClass obj; Cout<<obj.getCount; MyClass+ptr=new MyClass: Cout<<MyClass::9etCount; ’delete ptr; Cout<<MyClass::9etCount; return 0; } 执行这个程序的输出结果是( )。

    A.121

    B.232

    C.221

    D.122


    正确答案:A
    本题考查静态数据成员。静态数据成员在内存中只占一份空间,静态数据成员属于类,即使不定义对象,也会给静态数据成员分配空间,可以被引用。本题中先是定义了一个对象obj,执行构造函数使得静态数据成员count变为了l,然后又定义了指针对象,执行构造函数后,count变为了2,释放指针后,执行析构函数,使得count变为了1。所以本题答案为A。

  • 第4题:

    有如下程序:includeusing namespace std;class MyClass{public:MyClass(){++count;}~

    有如下程序: #include<iostream> using namespace std; class MyClass{ public: MyClass(){++count;} ~MyClass(){--count;} static int getCount(){return count;} private: static int count; }; int MyClass::count=0; int main(){ MyCl

    A.121

    B.232

    C.221

    D.122


    正确答案:A
    解析: 本题考查的知识点是静态成员。类中的静态成员是解决同—:个类的不同对象之间的数据和函数共享问题的。静态成员被所有属于这个类的对象共享。这种共享与全局变量或全局函数相比,既没有破坏数据隐藏的厚则,又保证了安全性。题目中,首先定义了一个obj对象,其构造函数使MyClass的静态数据成员count增1,所以第一条输出语句输出的结果是1。然后通过指针动态创建了一个MyClass类的对象,构造函数再次被调用,count变为2,所以第2次输出结果是2。接下来是用dilete删除了刚才动态创建的MyClass对象。析

  • 第5题:

    有如下程序:

    #include<iostream>

    usingnamespacestd;

    classMyClass{

    public:

    MyClass(){++count;)

    ~MyClass(){--count;)

    staticintgetCount(){returncount;}

    private:

    staticintcount;

    };

    intMyClass::count=0;

    intmain(){

    MyClassobj;

    cout<<obj.getCount();

    MyClass*ptr=newMyClass;

    cout<<MyClass::getCount();

    deleteptr;

    cout<<MyClass::getCount();

    return0;

    }

    程序的输出结果是( )。

    A.121

    B.232

    C.221

    D.122


    正确答案:A
    A。【解析】本题考查的知识点是静态成员。类中的静态成员是解决同一个类的不同对象之间的数据和函数共享问题的。静态成员被所有属于这个类的对象共享。这种共享与全局变量或全局函数相比,既没有破坏数据隐藏的原则,又保证了安全性。题目中,首先定义了一个obj对象,其构造函数使MyClass的静态数据成员count增1,所以第一条输出语句输出的结果是1。然后通过指针动态创建了一个MyClass类的对象,构造函数再次被调用,count变为2,所以第二次输出结果是2。接下来是用dilete删除了刚才动态创建的MyClass对象。析构函数被调用,count减1变为1,第三次输出1。故本题的输出为121。