对于拷贝初始化构造函数,正确的描述是()
A.在C++语言中,如果不自定义类的拷贝初始化构造函数,则每个类都有默认的拷贝初始化构造函数
B.必须为每个类定义拷贝初始化构造函数
C.如果要使用拷贝初始化构造函数,则必须在类中先定义
D.当定义了类的构造函数时,如果要使用拷贝初始化构造函数,则必须定义拷贝初始化构造
E.函数
A.在C++语言中,如果不自定义类的拷贝初始化构造函数,则每个类都有默认的拷贝初始化构造函数
B.必须为每个类定义拷贝初始化构造函数
C.如果要使用拷贝初始化构造函数,则必须在类中先定义
D.当定义了类的构造函数时,如果要使用拷贝初始化构造函数,则必须定义拷贝初始化构造
E.函数
根据下面类中Give 函数的原型和注释写出它的类外定义。
class Strings {
char *s; // 指向动态分配的字符串数组空间
int n; // 记录字符串长度
public:
Strings(char*str); // 构造函数,利用str 字符串长度初始化n,
// 利用str 字符串初始化s 所指的字符串空间
Strings(Strings& str); // 拷贝构造函数
Strings& Give(Strings& str); // 实现str 赋值给*this 的功能并返回*this
Strings Uion(Strings& str); // 实现*this 和str 中的字符串合并的
// 功能,把合并结果存入临时对象并返回
int Lenth() {return n;} // 返回字符串长度
void Print() {cout<<s<<endl;} // 输出字符串
};
A.都是拷贝一个类的对象给另一个同类型的类的对象
B.赋值运算符重载函数要把一个已存在对象的各成员的当前值赋给另一个已存在的同类对象
C.拷贝构造函数是用已存在的对象的各成员的当前值来创建一个相同的新对象
A.原型链继承简单易操作
B.父类实例属性得到继承,原型链查找效率提高,也能为一些属性提供合理的默认值
C.父类实例属性为引用类型时,不恰当地修改会导致所有子类被修改
D.创建父类实例作为子类原型时,可能无法确定构造函数需要的合理参数,这样提供的参数继承给子类没有实际意义,当子类需要这些参数时应该在构造函数中进行初始化和设置
A.构造方法的返回类型只能是void型
B.构造方法是类的一种特殊方法,它的方法名必须与类名相同
C.构造方法的主要作用是完成对类中成员变量的初始化工作
D.一般在创建新对象时,系统会自动调用构造方法
A.构造方法的名字必须与类名相同
B.构造方法通过形参传递初始值,实现对新建对象字段成员的初始化
C.构造方法没有返回值,其返回值类型应当定void
D.构造方法可以重载,这样可以提供多种形式的初始化方法
A.普通函数中this指向window
B.闭包中this指向定义时所在的函数
C.构造函数中的this指向的是实例对象
D.闭包中this指向window