C++中的早期绑定和延迟绑定
在这一节中,我们将了解 C++ 中的早期绑定和延迟绑定。绑定是指标识符转换为地址的过程。对于每个变量和函数,都需要进行这一绑定。对于函数,这是编译器通过正确的函数定义匹配调用。可以在编译时或运行时进行绑定。
早期绑定
这是编译时多态性。在这里,直接将一个地址与函数调用相关联。对于函数重载,这是一个早期绑定的示例。
示例
#include<iostream>
using namespace std;
class Base {
public:
void display() {
cout<<" In Base class" <<endl;
}
};
class Derived: public Base {
public:
void display() {
cout<<"In Derived class" << endl;
}
};
int main(void) {
Base *base_pointer = new Derived;
base_pointer->display();
return 0;
}输出
In Base class
延迟绑定
这是运行时多态性。在这种类型的绑定中,编译器会添加代码,在运行时标识对象类型,然后通过正确的函数定义匹配调用。这是通过使用虚函数实现的。
示例
#include<iostream>
using namespace std;
class Base {
public:
virtual void display() {
cout<<"In Base class" << endl;
}
};
class Derived: public Base {
public:
void display() {
cout<<"In Derived class" <<endl;
}
};
int main() {
Base *base_pointer = new Derived;
base_pointer->display();
return 0;
}输出
In Derived class
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP