选择题
有如下类定义:
class A{
char*a;
public:
A():a(0){}
A(char*aa){//把aa所指字符串拷贝到a所指向的存储空间
a=______;
strcpy(a,aa);
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动态分配空间,往往还要在析构函数中用delete回收空间。题中,数据成员是字符指针,要用构造函数中的参数aa所指的字符串初始化,所以为成员a分配的内存大小等于aa的大小。
提交答案
关闭