视源面试总结 1. 虚函数列表的结构(vptr) RTTI (Run time type information 运行时刻识别) 虚表(virtual table)和虚函数表, 存放着该类所有的虚函数对应的函数指针; 所以虚函数是占用内存空间的 "虚函数的实现的基本原理" "深入虚表结构" 派生类虚 ...
分类:
其他好文 时间:
2018-09-05 17:59:59
阅读次数:
189
什么是抽象类? 问题: Shape类有必要存在吗? 抽象类是面向对象中必须支持的。 抽象类初探: 编译结果如下: 完善示例: 纯虚函数要在子类中重写。 运行结果: 抽象类不能定义对象,但是抽象类可以定义指针。 抽象类与纯虚函数: 接口: C++中没有真正的接口,没有具体的语法支持,后续的语言C#、J ...
分类:
编程语言 时间:
2018-09-04 00:07:07
阅读次数:
163
纯虚函数(pure virtual function)是指被标明为不具体实现的虚拟成员函数。 它用于这样的情况:定义一个基类时,会遇到无法定义基类中虚函数的具体实现,其实现依赖于不同的派生类。 定义纯虚函数的一般格式为: virtual 返回类型 函数名(参数表)=0; 含有纯虚函数的基类是不能用来 ...
分类:
编程语言 时间:
2018-08-30 02:09:18
阅读次数:
196
转自:https://blog.csdn.net/haoel/article/details/1948051 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型指针指向其子类的实例,然后通过父类型指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是 ...
分类:
编程语言 时间:
2018-08-29 22:53:29
阅读次数:
371
前言 虚函数执行速度要稍慢一些。为了实现多态性,每一个派生类中均要保存相应虚函数的入口地址表,函数的调用机制也是间接实现。所以多态性总是要付出一定代价,但通用性是一个更高的目标。 实验环境 Windows10 企业版 Visual Studio2017 15.8.1 #include<iostrea ...
分类:
编程语言 时间:
2018-08-29 01:03:02
阅读次数:
141
假设有如下类: 1 class Base { 2 public: 3 virtual void disp(int x = 3) {//虚函数带默认参数值,3 4 cout << "Base::x is " << x << endl; 5 } 6 }; 7 class Derived: public ...
分类:
编程语言 时间:
2018-08-26 16:48:56
阅读次数:
181
1.什么是虚函数?什么是纯虚函数? 虚函数是允许被其子类重新定义的成员函数。 虚函数的声明:virtual returntype func(parameter);引入虚函数的目的是为了动态绑定; 纯虚函数声明:virtual returntype func(parameter)=0;引入纯虚函数是为 ...
分类:
编程语言 时间:
2018-08-23 10:48:23
阅读次数:
250
int的大小:都是4字节(32和64位) https://blog.csdn.net/qing101hua/article/details/53709712 虚函数表在编译的时候就确定了(地址不变),而类对象的虚函数指针vptr是在运行阶段确定的,这是实现多态的关键!。 答案是在构造函数中进行虚表的 ...
分类:
其他好文 时间:
2018-08-21 18:23:51
阅读次数:
309
61.字符指针、浮点数指针、以及函数指针这三种类型的变量哪个占用的内存最大?为什么? 指针变量占有的空间是固定的,他和计算机操作系统的位数有关系。 62.构造函数可否是虚函数,为什么?析构函数呢,可否是纯虚的呢? 构造函数不可以是虚函数,构造函数的作用是申请内存空间,实例化类成为对象的,而虚函数存储 ...
分类:
编程语言 时间:
2018-08-19 20:55:55
阅读次数:
258
1、如何判断某个数据元素是否存在于线性表中? 操作: 可以为线性表 增加一个查找操作 参数:待查找的数据元素 返回值: 大于0:数据元素在线性表中第一次出现的位置 1:数据元素不存在 针对基础数据类型,首先在顶层父类 中增加一个虚函数 ,然后在各子类中实现这个函数 针对自定义类类来说 解决方案1:在 ...
分类:
其他好文 时间:
2018-08-19 13:06:09
阅读次数:
160