题目内容

有如下的程序:#include #includeusing 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++ Programming");MyString b(a);return 0;}在运行上面的程序时出错,出错的原因是()。

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

查看答案
更多问题

已知类MyClass的定义如下:class MyClass{private:int num;public:MyClass(int d):num(d){}MyClass(const MyClass& original):num (original.num){}friend void print(MyClass C){cout<

A. 4
B. 3
C. 2
D. 1

下列程序的执行结果是( )。#include #includeusing namespace std;class MyClass{ private: int num; public: MyClass(int d):num(d){} MyClass(const MyClass& original):num (original.num){} friend void print(MyClass C){cout<

A. 5
B. 55
C. 没有输出
D. 程序出错

int main() { Student t1; Student t2(t1); //1 Student t3 = t1; //2 return 0;}Student为表示学生的类且未重载赋值操作符,则上述程序中有调用复制构造函数的是( ):

A. 1
B. 2
C. 1和2
D. 都不调用复制构造函数

enum class Category { General=1, Pistol, MachineGun, Cannon};Pistol 的值为:

A. 0
B. 1
C. 2
D. 3

答案查题题库