📅  最后修改于: 2020-10-16 07:08:54             🧑  作者: Mango
后期绑定函数调用在运行时解决。因此,编译器在运行时确定对象的类型,然后绑定函数调用。
虚拟功能规则
#include
using namespace std;
class A
{
int x=5;
public:
void display()
{
std::cout << "Value of x is : " << x<display();
return 0;
}
输出:
Value of x is : 5
在上面的示例中,* a是基类指针。指针只能访问基类成员,而不能访问派生类的成员。尽管C++允许基本指针指向从基类派生的任何对象,但是它不能直接访问派生类的成员。因此,需要允许基指针访问派生类成员的虚函数。
让我们看一下用于在程序中调用派生类的C++虚拟函数的简单示例。
#include
{
public:
virtual void display()
{
cout << "Base class is invoked"<display(); //Late Binding occurs
}
输出:
Derived Class is invoked
纯虚函数可以定义为:
virtual void display() = 0;
让我们看一个简单的例子:
#include
using namespace std;
class Base
{
public:
virtual void show() = 0;
};
class Derived : public Base
{
public:
void show()
{
std::cout << "Derived class is derived from the base class." << std::endl;
}
};
int main()
{
Base *bptr;
//Base b;
Derived d;
bptr = &d;
bptr->show();
return 0;
}
输出:
Derived class is derived from the base class.
在上面的示例中,基类包含纯虚函数。因此,基类是抽象基类。我们无法创建基类的对象。