在本教程中,我们将学习以下主题
- 需要虚拟功能
- 虚函数示例
- 虚拟功能的规则
1.需要虚拟功能
考虑下面的例子。
#include<iostream> using namespace std; class A{ public: void show(){ cout << " Hello from Class A"; } }; class B :public A{ public: void show(){ cout << " Hello from Class B"; } }; int main(){ A *a1 = new B; // Create a base class pointer and assign address of derived object. a1->show(); }
专注于:
A *a1 = new B; a1->show();
在这里,我们将派生类对象分配给基类指针。然后,当您调用“ show()”时。我们希望它将打印“来自B类的Hello”。
但是输出将是“来自A类的问候”。
因为,这里的绑定将在编译时发生。因此,我们需要在运行时移动绑定。因此,我们将使用虚函数。
2.虚函数示例
因此,当您将函数设为虚函数时,它将在所有派生类中变为虚函数。
“虚拟”是用于使功能成为虚拟的关键字。
下面是虚拟函数的示例:
#include<iostream> using namespace std; class A{ public: virtual void show(){ cout << " Hello from Class A"; } }; class B :public A{ public: void show(){ cout << " Hello from Class B"; } }; int main() { A *a1 = new B; a1->show(); }
输出:
Hello from Class B.
3.功能虚拟化的规则
- 虚拟函数不能是静态函数或朋友函数。
- 虚拟应该在基类中声明。
- 该函数应在基类和派生类中定义。
- 我们只能在指针或引用的帮助下访问虚拟函数。
该网站上可用的教程列表:
C编程20+章 | C ++编程80+章 |
100多个编码问题 | 数据结构和算法85+章 |
系统设计20+章 | Shell脚本编写12章 |
4g LTE 60+章节 | 最常见的编码问题 |
5G NR 50+章 | Linux系统编程20+章 |