有如下程序:#includeusing namespace std;class test{private: int a;public: test(){cout<<"constructor"<
A. 3destructor
B. 3
C. constructordestructor
D. copy constructordestructor
查看答案
有如下程序:#include #include 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. 系统不能生成缺省的拷贝构造函数
类的默认的拷贝构造函数( )。
A. 仅当未定义拷贝构造函数时存在
B. 在任何情况下都存在
C. 仅当未定义有参构造函数时存在
D. 仅当未定义任何构造函数时存在
类的默认的无参构造函数( )。
A. 仅当未显式定义任何构造函数时存在
B. 仅当未定义无参构造函数时存在
C. 在任何情况下都存在
D. 仅当未定义有参构造函数时存在
下面是关于类MyClass的定义,对定义中的各语句描述正确的是( )。 class MyClass { public: void MyClass(int a){x=a} //1 int f(int a,int b) //2 { x=a;y=b; } int f(int a,int b,int c=0) //3 { x=a;y=b;z=c; } static void g(){x=10;} //4 private: int x,y,z; };
A. 语句1、2、3、4都不正确
B. 类4实现对类成员变量x的更新操作
C. 语句2和3实现类成员函数的重载
D. 语句1是类MyClass的构造函数的定义