单选

有如下的程序:

#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.系统不能生成默认的复制构造函数
参考答案
您可能感兴趣的试题

类A是类B的友元,类B是类C的友元,则下列说法正确的是(  )。

  • A.类B是类A的友元
  • B.类C是类A的友元
  • C.类A是类C的友元
  • D.以上都不对

下列叙述中错误的是(  )。

  • A.在程序中凡是以“#”开始的语句行都是预处理命令行
  • B.预处理命令行的最后不能以分号表示结束
  • C.#defineMAX是合法的宏定义命令行
  • D.C++中预处理命令行的处理是在程序执行的过程中进行的

已知函数FA调用函数FB,若要把这两个函数定义在同一个文件中,则(  )。

  • A.FA必须定义在FB之前
  • B.FB必须定义在FA之前
  • C.若FA定义在FB之后,则FA的原型必须出现在FB的定义之前
  • D.若FB定义在FA之后,则FB的原型必须出现在FA的定义之前

下列表达式的值为false的是(  )。

  • A.1<3&&5<7 2="">4)
  • C.3&0&&l
  • D.!(5<8)‖(2<8)
¥

订单号:

遇到问题请联系在线客服

订单号:

遇到问题请联系在线客服