静态联编 和 动态联编
2020-05-16 本文已影响0人
Hao_38b9
静态联编 和 动态联编
1. 静态联编
定义:静态联编是指系统在编译时就决定如何实现某一动作。它要求在编译程序时就知道调用函数的全部信息。
特点:函数调用速度快,效率高。
实现:
- 函数重载
- 模板
2.动态联编
定义:动态联编是指系统在运行时动态实现某一动作。采用这种联编方式,一直要到程序运行时才能确定调用哪一个函数。
特点:提供更好的灵活性、问题抽象性和程序易维护性
实现:类的继承以及设置虚函数来实现
#include<iostream>
#include<string>
using namespace std;
class Person {
public:
Person(string n, bool g) :name(n), gender(g) { }
virtual void printInfo() {
cout << "名字:" << name<<endl;
cout << "性别:" << (gender ? "男" : "女") << endl;
}
private:
string name;
bool gender;
};
class Teacher:public Person {
public:
Teacher(string n, bool g, int id) :Person(n, g), work_id(id) {
}
virtual void printInfo() {
Person::printInfo();
cout << "工号:" << work_id << endl;
}
private:
int work_id;
};
int main() {
Person person("小兰",false);
person.printInfo();
Teacher teacher("小兰", false, 1);
teacher.printInfo();
Person* t_p = &teacher;
t_p->printInfo();
return 0;
}