继承常见问题
问题一:
下面关于继承说法不正确的是( )
A.继承可以使用现有类的所有功能,并在无需重新编写原来类的情况下对这些功能进行扩展
B.继承体系中子类必须要体现出与基类的不同
C.子类对象一定比基类对象大
D.继承呈现了面相对象程序设计的层次结构,体现了有简单到复杂的认知过程
问题二:
下面关于继承权限说法正确的是( )
A.派生类在继承基类时,必须明确指定继承方式
B.Class定义的类,默认的访问权限是protected
C.struct定义的类,默认访问权限是public
D.子类没有继承基类私有的成员
问题三:
下面关于访问权限与继承权限说法不正确的是( )
A.访问权限和继承权限是不同的概念
B.访问权限和继承权限关键字上是一样的,但是出现位置不一样
C.如果是protected继承方式,基类public的成员变量能通过基类对象在类外直接访问
D.基类私有的成员变量在子类中都不能直接访问,因为没有被子类继承了
问题四:
关于同名隐藏的说法正确的是( )
A.同一个类中,不能存在相同名称的成员函数
B.在基类和子类中,可以存在相同名称但参数列表不同的函数,他们形成重载
C.在基类和子类中,不能存在函数原型完全相同的函数,因为编译时会报错
D.成员函数可以同名,只要参数类型不同即可,成员变量不能同名,即使类型不同
问题五:
关于基类哪些成员被子类继承说法不正确的是( )
A.静态成员函数
B.所有成员变量
C.基类的友元函数
D.静态成员变量在整个继承体系中只有一份
答案1:
A.这是继承的功能,也是代码复用的体现
B.继承除了吸收基类成员之外,一般还需要扩充自己的数据成员,跟基类有所不一样
C.不一定,有可能子类只是改写父类的方法而已,并没有增加其自身的数据成员,则大小一样,故错误
D.继承体现了一定的层次结构和认知过程
答案2:
A.可以不指定,默认为private
B.Class定义的类,默认的访问权限是private
C.正确,在C++中,这是struct跟class唯一的区别
D. 私有的成员继承下来了,但是在子类中不可见
答案3:
A.两个权限控制的东西不一样
B.访问权限在类内部,继承权限在类外
C.只要是public成员对象都可以直接访问
D.基类私有成员不能直接访问不是没有被继承,而是权限问题
答案4:
A.可以存在,如函数重载
B.基类与子类函数名字相同,参数不同,形成的是隐藏
C.可以共存
D.成员函数在同一个类里面同名,此时构成了重载,但变量一定不能同名,故正确
答案5:
A.静态成员函数也可以被继承
B.成员变量所有的都会被继承,无论公有私有
C.友元函数不能被继承,相当于你爹的朋友不一定是你的朋友
D.静态成员属于整个类,不属于任何对象,所以在整体体系中只有一份