我们在Cpp中使用 virtual 来实现动态绑定,即在运行时根据创建的实际对象而不是引用或指针变量来决定必须调用哪个函数。
class A
{
int a;
public:
virtual void show();
};
void A::show() { cout<<a<<endl; }
class B:public A
{
int b;
public:
void show() { cout<<b<<endl; }
};
class C:public A
{
int c;
public:
void show() { cout<<c<<endl; }
};
假设,someFunction(A& aref)
。它可以采用类型B
或C
或的对象A
注意:假设设置了数据成员的值
我的意思是定义了路径(可以是 A 或 B 或 C)。这不完全是run time dependent
[就像要求用户输入年龄并且用户输入一些单词或其他一些数据类型]。
但是为什么这被称为run time binding
?编译器会事先检查要分配的对象是否兼容。
是用来表示引用变量与特定类型的对象没有严格关联的术语,它是在运行时决定的。还有更多吗?