下面的描述中,正确的是()。
A: virtual可以用来声明虚函数
B: 含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类
C: 即使基类的构造函数没有参数,派生类也必须建立构造函数
D: 静态数据成员可以通过成员初始化列表来初始化
A: virtual可以用来声明虚函数
B: 含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类
C: 即使基类的构造函数没有参数,派生类也必须建立构造函数
D: 静态数据成员可以通过成员初始化列表来初始化
举一反三
- 带有基类的多层派生类构造函数的成员初始化列表中都要排出虚基类的构造函数,这样将对虚基类的子对象初始化:
- 下列有关派生和继承的表述中,错误的是____。 A: 若派生类没有实现基类中的一个纯虚函数,则该派生类是抽象类 B: 在定义派生类时,可以用关键字virtual将某个基类指定为虚基类 C: 在生成派生类对象时,派生类构造函数要调用基类的构造函数 D: 派生类中定义的成员函数可以访问基类的所有成员
- 下列关于友元的描述中,错误的是( )。 A: 在建立虚基类的派生对象时,只有最远派生类的构造函数调用虚基类的构造函数。 B: 在建立虚基类的派生对象时,虚基类构造函数的调用次数与虚基类下面的派生类个数有关。 C: 设置虚基类的目的是消除二义性 。 D: 虚基类可以实例化一个或多个对象。
- ______是一个在基类中说明的虚函数,它在基类中没有定义,但可以在派生类中定义。 A: 虚析构函数 B: 虚构造函数 C: 纯虚函数 D: 静态成员函数
- 下列关于有子对象派生类的构造函数调用顺序正确的是()。 ①调用基类构造函数,对基类数据成员初始化 ②调用子对象构造函数,对子对象数据成员初始化 ③执行派生类构造函数,对派生类数据成员初始化