静态联编 和 动态联编

静态联编 和 动态联编

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;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容