下面哪些是有效的类构造函数()。
A.defInit(self):
B.definit(self,var=0):
C.definit():
D.definit(self,a,b,c):
A.defInit(self):
B.definit(self,var=0):
C.definit():
D.definit(self,a,b,c):
A.多承中,多个基类必须采用相同的继承方式
B.多继承中,多个基类可以采用不同的继承方式
C.多继承中创建派生类对象时会先调用派生类构造函数,再调用各基类构造函数
D.多继承中创建派生类对象时各基类构造函数的调用顺序与基类的继承顺序一致
根据下面类中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#的类中默认包含一个无参的构造函数
C.构造函数的名称必须与类名相同
D.构造函数只能返回void类型
A.构造函数的名字必须与类名一致。
B.定义构造函数时,需要使用void关键字。
C.构造函数可有返回值,也可以没有返回值。
D.构造函数内部声明的变量,在外部也可以被使用。
A.java接口包含函数声明和常量声明
B.java中的集合类(如Vector)可以用来存储任何类型的对象,且大小可以自动调整。但需要事先知道所存储对象的类型,才能正常使用
C.java中,子类不可以访问父类的私有成员和受保护的成员
D.在java中,可以用异常(Exception)来抛出一些并非错误的消息,但这样比直接从函数返回一个结果要花费更大的系统开销
B、构造函数和析构函数均可以重载
C、已知类Student以及Student*p;在使用p=newStudent;时自动调用无参构造函数创建动态对象,在deleltep;时自动调用析构函数释放动态对象
D、构造函数和析构函数都可以成为虚函数