[单选题]

有如下的程序: include include using namespace st

有如下的程序: #include<cstring> #include<iostream> 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); return 0; } 在运行上面的程序时出错,出错的原因是

A.构造函数的实参不允许是本类的对象

B.没有定义实现深层复制(深拷贝)的拷贝构造函数

C.构造对象a时实参与形参类型不符

D.系统不能生成缺省的拷贝构造函数

参考答案与解析:

相关试题

有如下程序 #include #include using namespac

[单选题]有如下程序 include include using namespace std; cla有如下程序 #include <iostream> #include <iomanip> using namespace std; class MyClass { public: MyClass() { cout<<'A'; } MyClass(char c){ cout<<c; } ~MyClass(){ cout<<'B'; } }; int main( ) { MyClass p1,*p

  • 查看答案
  • 有如下程序 #include #include using namespace

    [单选题]有如下程序 include include using namespace std; int main(有如下程序 #include<iostream> #include<iomanip> using namespace std; int main(){ cout<<setprecision(3)<<fixed<<setfill('*')<<setw(8); cout<<12.345<<_______<<34.567; return 0; } 若程序的输出是: ** 12.345**34.5

  • 查看答案
  • 有如下程序: #include #include using namespa

    [单选题]有如下程序: include include using namespace std; int ma有如下程序: #include <iostream> #include <iomanip> using namespace std; int main() { cout.fill('*'); cout << left << setw(4) << 123 << "OK" << endl; return 0; }A.123*OKB.123*OK**C.*123OKD.*123**OK

  • 查看答案
  • 有如下程序:#include #include using namespace

    [单选题]有如下程序:include include using namespace std;class CSum{int x,y有如下程序: #include <iostream.h> #include <iomanip.h> using namespace std; class CSum { int x,y; public: CSum (int x0,int y0):x(x0),y(y0){} friend ostream & operator<<(ostream& os,const

  • 查看答案
  • 有如下程序: #include #include using namespace

    [单选题]有如下程序: include include using namespace std; int main(){ cout<

  • 查看答案
  • 有如下程序: #include #include using namespa

    [单选题]有如下程序: include include using namespace std; int main() {cout.f有如下程序: #include <iostream> #include <iomanip> using namespace std; int main() { cout.fill('*'); cout.width(6); cout.fill('#'); cout<<123<<end1; return 0; } 执行生的输出结果是( )。A. ###123B.12

  • 查看答案
  • 有如下程序:#include #include using namespace

    [单选题]有如下程序:include include using namespace std;class CSum{int x,y;pub有如下程序: #include <iostream> #include <iomanip> using namespace std; class CSum {int x,y; public: CSum(int x0,int y0):x(x0),y(y0) {} friend ostream& operator<<(ostream & os, const

  • 查看答案
  • 有如下的程序:#include #include using namespace

    [单选题]有如下的程序:include include using namespace std;class MyString{p有如下的程序: #include <cstring.h> #include <iostream.h> using namespace std; class MyString { public: MyString(const char*s); ~MyString () {delete [] data;} protected: unsigned len; char*data; };

  • 查看答案
  • 有如下的程序;#include #include using namespace

    [单选题]有如下的程序;include include using namespace std;class MyString{public有如下的程序; #include <ctring> #include <iostream> using namespace std; class MyString { public: MyString(const char *s); ~MyString() {delete[]data;} protected: unsigned len; char *data; }; M

  • 查看答案
  • 有下列的程序: #include #include using namespac

    [单选题]有下列的程序: include include using namespace std; cl有下列的程序: #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

  • 查看答案
  • 有如下的程序: #include #include using namespac