【面试】C++继承问题集锦
来源:互联网 发布:方舟生存进化最终优化 编辑:程序博客网 时间:2024/06/05 22:51
继承的概念
答:继承是面向对象的三大特性之一,继承是指一个对象直接使用另一对象的属性和方法。
继承可以使子类具有父类的各种属性和方法。
继承的主要目的是实现代码的重用。
派生类与基类的转换
答:
- 派生类总是可以转换为基类的引用类型。
- 基类转换为派生类要在确认安全的条件下,使用强制转换来进行。
有哪几种继承方式
答: 继承的方式分为公有继承public,保护继承protected和私有继承private。他们分别表示不同的访问权限。
(面试时可加答实现继承和接口继承)
继承时访问级别如何变化
答:在C++中有public,protected和private三种继承访问级别。
子类继承的时候,通过声明为protected或private可以降低父类访问级别。
补充知识点:
public:基类成员保持自己的访问级别
protected:基类的public和protected成员在派生类中为protected成员。基类的private成员年保持为private。
private:基类的所有成员在派生类中为private成员。
什么时候发生函数覆盖
答:覆盖在继承时派生类对于抽象类或者接口声明的方法具体实现时使用。
补充知识点:
覆盖是指派生类中如果存在重新定义的函数,其函数名、参数列表,返回值类型必须同父类中的相对应被覆盖的函数严格一致。
覆盖函数和被覆盖函数只有函数体不同,当派生类对象调用子类中该同名函数时会自动调用子类中的覆盖版本,而不是父类中的被覆盖版本。
覆盖的特征为:
- 在不同类域中
- 函数名字相同
- 函数参数相同
- 基类函数必须有virtual关键字
私有继承和组合有什么相同点和不通点
答: 相同点:都表示“有一个”的关系
不同点:私有继承中派生类能访问基类的protected成员,并且可以重写基类的虚函数,组合不具有这些功能。
为什么需要多重继承,他的优缺点是什么
答:为了解决实际生活中一些事物往往拥有两个或两个以上事物的属性。
多重继承的优点:对象可以调用多个基类的接口
多重继承的缺点:容易出现继承向上的二义性。即出现菱形继承导致的二义性。
多重继承中的二义性如何解决
答:两个解决方案:
- 加上全局符号确定调用哪一份拷贝
- 使用虚拟继承
- 【面试】C++继承问题集锦
- C语言面试问题集锦
- 面试问题集锦 不断更新
- 面试小问题集锦
- C++面试问题集锦
- 小组面试问题集锦
- 面试问题集锦二
- Spring面试问题集锦
- Spring面试问题集锦
- Spring面试问题集锦
- 面试问题集锦
- 面试问题集锦
- 前端面试问题集锦
- 面试问题集锦
- 最佳面试问题集锦
- 笔/面试问题集锦
- Mybatis面试问题集锦
- 面试问题集锦
- 强行替换exe图标的方法
- 2016夏季练习——线段树
- C/C++
- 求4位吸血鬼数字问题
- EasySwift/YXJImageCompressor 图片压缩,拍照上传压缩图片,比例压缩,data压缩,方便好用
- 【面试】C++继承问题集锦
- android 使用Builder设计模式,设计ToolBar
- EasySwift/YXJPageControl 高扩展的PageController
- html中使用到的标签
- org.springframework.beans.factory.NoSuchBeanDefinitionException
- 操作系统学习笔记——进程与线程联系与区别
- Java 集合框架源码分析(六)——HashTable
- 二进制反转
- TCP的三次握手(建立连接)和四次挥手(关闭连接)