问答题X 纠错

参考答案:

C++编译器为每个“内含虚拟函数的类”建立一个虚拟函数表(vtablE.,表中每一个指针元素指向一个虚拟函数的地址,编译器为类加上一个成员变量vptr,vptr是一个指向虚拟函数表的指针。每一个派生类的对象,都有一个vptr,对象调用虚拟函数就是通过vptr找到虚拟函数表,再找到虚拟函数的真正地址。虚拟函数表的内容是依据类中的虚拟函数声明次序一一填入函数指针。派生类继承基类的虚拟函数表,派生类中改写虚拟函数,虚拟函数表中元素所指的函数地址不再是基类的函数地址,而是派生类的函数地址。包含虚拟函数的类通过vptr指针和虚拟函数表可以在程序运行时依据指针实际指向的对象调用对应的虚拟函数,从而实现多态(Polymorphism)。为了达到动态绑定的目的,虚拟函数是了解多态(Polymorphism)以及动态绑定的关键,同时也是了解如何使用MFC的关键。

查答案就用赞题库小程序 还有拍照搜题 语音搜题 快来试试吧
无需下载 立即使用

你可能喜欢

问答题

C++程序设计语言中this指针的作用?

参考答案:一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静...

问答题

面向对象程序设计具有哪三大特点及其目的?

参考答案:封装,继承,多态封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或对象操作,对不可信的进行...

问答题

C++中采用类的概念将数据以及处理数据的函数封装在一起的好处?

参考答案:C++采用类(class)的概念将数据以及处理数据的函数封装在一起,将一部分行为作为外部访问的接口与外部发生联系,而将数...

问答题

面向过程和面向对象在程序组织方式上的差别?

参考答案:面向过程的核心是功能的分解,最终的程序由过程构成,将数据结构和过程作为两个实体对待,着重点在过程。缺点就是一旦数据结构需...

单项选择题

A.静态成员函数可以是虚函数
B.构造函数不可以是虚函数
C.析构函数不可以是虚函数
D.内联函数可以是虚函数

单项选择题

A.非私有成员
B.公有成员
C.私有成员
D.保护成员

单项选择题

A.父类的非私有成员和子类的非私有成员
B.父类的公有成员和子类的非私有成员
C.父类的非私有成员和子类的公有成员
D.父类的公有成员和子类的公有成员

单项选择题

A.引用的值与被引用变量的值相等,内存地址相同
B.引用的值与被引用变量的值相等,内存地址不相同
C.引用的值与被引用变量的值不等,内存地址相同
D.引用的值与被引用变量的值不等,内存地址不同

赞题库

赞题库-搜题找答案

(已有500万+用户使用)


  • 历年真题

  • 章节练习

  • 每日一练

  • 高频考题

  • 错题收藏

  • 在线模考

  • 提分密卷

  • 模拟试题

无需下载 立即使用

版权所有©考试资料网(ppkao.com)All Rights Reserved