问题
单项选择题
有如下的程序:
#include <cstring.h>
#include <iostream. h>
using namespace std;
class MyString public:
MyString(const char*s);
~MyString() delete[]data;
protected:
unsigned len;
char*data;
;
MyString::MyString(const char *s) len=strlen(s);
data=new char[len+ 1];
strcpy(data, s);int main() MyString a("C++ Programing");
MyString b(a);
return0;在运行上面的程序时出错,出错的原因是( )。
A.构造函数的实参不允许是本类的对象
B.没有定义实现深层复制(深拷贝)的复制构造函数
C.构造对象a时实参与形参类型不符
D.系统不能生成默认的复制构造函数
答案
参考答案:B