( 27 )有如下程序:#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(){MyClass obj;cout<<obj.getCount();MyClass*ptr=new M

题目

( 27 )有如下程序:

#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(){

MyClass obj;

cout<<obj.getCount();

MyClass*ptr=new MyClass;

cout<<MyClass::getCount();

delete ptr;

cout<<MyClass::getCount();

return 0;

}

程序的输出结果是

A ) 121

B ) 232

C ) 221

D ) 122


相似考题
更多“( 27 )有如下程序:#include&lt;iostream&gt;using namespace std;class MyClass{public:MyClass( ”相关问题
  • 第1题:

    有如下程序: #include<iostream> Usingnamespacestd; ClassMyClass{ Public: MyClass(){cout<<*;} MyClass(MyClass&a){cout<<#;} ~MyClass(){cout<<@;} }; intmain(){ MyClassa; MyClassb(a);Return0; } 运行时的输出结果是( )。

    A.*@#@

    B.#@*@

    C.*#@@

    D.#*@@


    正确答案:C
    C。【解析lMyClassa;先执行,MyClass函数输出*;MyClassb(a);执行,MyClass(MyClassa)输出#;最后执行两个析构函数,输出@@。

  • 第2题:

    下列程序在构造函数和析构函数中申请和释放类的私有成员,请完成该类的实现。

    class Myclass {

    public:

    Myclass(int num);

    ~ Myclass( );

    public:

    int *p;

    };

    Myclass: :Myclass( int hum) {

    【 】

    Myclass:: ~ Myelass( ) {

    【 】;

    }。


    正确答案:P=new int(a)、delete P
    P=new int(a)、delete P 解析:new和delete的用法。

  • 第3题:

    有如下程序: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对象。析

  • 第4题:

    有以下程序:includeusing namespace std;class MyClass{public:MyClass(int n){numbe

    有以下程序: #include<iostream> using namespace std; class MyClass { public: MyClass(int n){number=n;} //拷贝构造函数 MyClass(MyClass&other) {number=other.number;} ~MyClass() {} private: int number; }; MyClass fun(MyClass p)

    A.5

    B.4

    C.3

    D.2


    正确答案:B
    解析: 调用拷贝构造函数的情况为:一个新对象被另一个已存在的同类型对象初始化,当一个对象作为实参传遵给函数时为初始化形参,要调用拷贝构造函数。在函数值返回时形参的生命期结束时它的析构函数被调用,在函数返回一个对象时调用拷贝构造函数。符合以上条件的有:用对象obj1来初始化obj3;obj3作为实参被传入,函数fun返回一个对象时,系统用返回值初始化一个匿名对象时调用了拷贝构造函数。总共调用4次。

  • 第5题:

    有如下程序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