在多继承时,若基类之间有同名成员,通过派生类对象访问该同名成员时将出现访问时的二义性,可以采用类名限定或同名隐藏规则来解决;当派生类从多个基类派生,而这些基类又从同一个基类派生,则在访问此共同基类中的成员时,将产生二义性,可以采用虚基类或直接基类名限定来解决。
对
举一反三
- 下列关于二定义性的说法错误的是 ______。 A: 派生类中的成员与基类的成员同名,在调用时可能存在二义性 B: 派生类的二个基类是有同名成员,调用这一成员时可能产生有二义性 C: 派生类的二个基类是从同一共同基类派生出来,调用基类的成员时可能存在二义性 D: 使用成员限定可解决二义性问题
- 在多继承时,基类与派生类之间,或基类之间出现同名成员时,将出现访问时的二义性(不确定性)
- 下列关于多继承的描述,错误的是() A: 一个派生类对象可以拥有多个直接或间接基类的成员 B: 在多继承时不同的基类可以有同名成员 C: 对于不同基类的同名成员,派生类对象访问它们时不会出现二义性 D: 对于不同基类的不同名成员,派生类对象访问它们时不会出现二义性
- 下列有关继承和派生的叙述中,错误的是 A: 派生类对象可以赋值给基类对象 B: 派生类的成员函数可以访问基类的所有成员 C: 如果派生类中有未实现基类的纯虚函数,则该派生类是一个抽象类。 D: 如果一个派生类私有继承其基类,则在main函数中,该派生类对象不能访问基类保护成员
- 当用私有继承方式从基类派生一个类时,基类中的所有成员在派生类中都成为私有成员。
内容
- 0
一个派生类不仅可以从一个基类派生,也可以从多个基类派生。
- 1
下面有关继承的说法中,正确的是() A: A类和B类均有C类需要的成员,因此可以从A类和B类共同派生出C类 B: 在派生新类时,可以指明是公有派生、私有派生或保护派生 C: 派生类可以继承基类中的成员,同时也继承基类的父类中的成员 D: 在派生类中,不能添加新的成员,只能继承基类的成员
- 2
当用public继承从基类派生一个类时,基类的public成员成为派生类的 ____成员, protected成员成为派生类的 ____成员,对private成员是____。
- 3
当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是
- 4
下列有关派生和继承的表述中,错误的是____。 A: 若派生类没有实现基类中的一个纯虚函数,则该派生类是抽象类 B: 在定义派生类时,可以用关键字virtual将某个基类指定为虚基类 C: 在生成派生类对象时,派生类构造函数要调用基类的构造函数 D: 派生类中定义的成员函数可以访问基类的所有成员