单项选择题

有如下的程序:   #include   #include   usingnamespacestd;   classMyString   {public:   MyString(constchar*s);   MyString(){delete[]data;}   protected:   unsignedlem   char*data;};   MyStrin9::MyString(constchar*s)   {len=strlen(s);   data=newchar[len+1];   strcpy(data,s);}   intmain()   {MyStringa("C++Programing");   MyStringb(a);   return0;}   在运行上面的程序时出错,出错的原因是(  )。

A.构造函数的实参不允许是本类的对象
B.没有定义实现深层复制的复制构造函数
C.构造对象a时实参与形参类型不符
D.系统不能生成默认的复制构造函数