根据程序中的注释将下列缺失部分补充完整。class A{char*a;public:A():a(0){}A(char*aa){ //把aa所指字符串复制给a所指向的存储空间a= 【 】 char[strlen(aa)+1];strcpy(a,aa);}~A(){delete[]a;}}

题目

根据程序中的注释将下列缺失部分补充完整。

class A{

char*a;

public:

A():a(0){}

A(char*aa){ //把aa所指字符串复制给a所指向的存储空间

a= 【 】 char[strlen(aa)+1];

strcpy(a,aa);

}

~A(){delete[]a;}

}


相似考题
更多“根据程序中的注释将下列缺失部分补充完整。class A{char*a;public:A():a(0){}A(char*aa){//把aa所 ”相关问题
  • 第1题:

    有如下类定义:

    class A{

    char *a;

    public:

    A():*(0){}

    A(char * aA){//把aa所指字符串拷贝到a所指向的存储空间

    a=________;

    strcpy(a,aA);

    }

    ~A(){delete[]a;}

    };

    横线处应填写的表达式是

    A.new char[strlen(aA)+1]

    B.char[strlen(aA)+1]

    C.char[strlen(aA)]

    D.new char[sizeof(aA)-1]


    正确答案:A
    解析:利用new运算符进行内存申请操作,长度为aa字符串长度加上字符串结束标志‘\0’,总共申请strlen(aa)+1字节,故选A)。

  • 第2题:

    有以下类定义:

    class A{

    char*a;

    public:

    A( ):a(0){ }

    A(char*aA) { //把aa所指字符串复制到a所指的存储空间

    a=______;

    strcpy(a,aA) ;

    }

    ~A( ){delete[ ]a;}

    };

    画线处应填写的表达式是

    A.new char[strlen(aA)+1]

    B.char[strlen(aA)+1]

    C.char[strlen(aA)]

    D.new char[sizeof(aA)-1]


    正确答案:A
    解析:为a申请一个比aa串长增加1的一个存储空问。B和C缺少new运算子,D分配空间不足。

  • 第3题:

    有如下类定义: classA{ char*a; public: A( ):a(O){} A(char*aa){//把aa所指字符串拷贝到a所指向的存储空间 a=__; strcpy(a,aa); } ~A( ){delete[]a;} }; 横线处应填写的表达式是( )。

    A.Dewchar[strlen(aa)+1]

    B.char[strlen(aa)+1]

    C.char[strlen(aa)]

    D.newchar[sizeof(aa)-1]


    正确答案:A
    A。【解析】对动态分配存储空间的考查,在C++中,回车键需计一字符,即总的长度为strlen(aa)+1。

  • 第4题:

    请将下列程序的横线处补充完整,使得输出结果为bbaaincludeusing namespace std;class

    请将下列程序的横线处补充完整,使得输出结果为bbaa

    include<iostream>

    using namespace std;

    class A{

    public:

    ______{cout<<"aa";}

    };

    class B:public A{

    public:

    ~B(){cout<<"bb";}

    };

    int main(){

    B*p=new


    正确答案:~A()
    ~A() 解析: 此题考查的是类的构造与析构。本题要求输出的结果中包含aa,所以基类A中横线处的函数一定要被执行。横线处应是定义基类的构造或者析构函数,如果定义的是构造,那么aa肯定在new操作时就输出,而下面的bb是在析构函数中,会在delete时被输出。故可以肯定应填入基类A的析构函数定义:~A()。

  • 第5题:

    请将如下程序补充完整,使得输出结果为:bbaa。 include using naluespace std; class

    请将如下程序补充完整,使得输出结果为:bbaa。

    include<iostream>

    using naluespace std;

    class A{

    public:

    ______{eout<<"aa";}

    };

    class B:public A{

    public:

    ~B( ){eont<<"bb";}

    };

    int ulain( ){

    B*P=new B;

    delete P;

    return 0;

    }


    正确答案:~A( )
    ~A( ) 解析:派生类和基类的析构函数调用顺序是先调用派生类的析构函数,然后调用基类的析构函数,打印“bb”说明已经在调用派生类的析构函数,则要继续打印“aa”,显然就只有定义在基类的析构函数中去打印,故答案为~A( )。