1定义
(1)编译时多态/静态联编
指联编工作在编译阶段完成,即在编译阶段确定了程序中的操作调用与执行该操作的代码间的关系,基于指向对象的指针类型或引用类型。
(2)运行时多态/动态联编
指联编在程序运行时动态进行,对函数的调用基于对象的类型。
2区别总结
3代码
(1)编译时多态
1)函数重载
//编译时多态,函数调用与**指针类型**有关。
#include<iostream>
using namespace std;
class A{
public:
void print(){
cout<<"A"<<endl;}//函数重载
};
class B:public A{
public:
void print(){
cout<<"B"<<endl;}//函数重载
};
int main(){
A *p;//指针p为A类型
A a;
B b;
p=&a;
p->print() ;
p=&b;
p->print();
return 0;
}
//输出结果:
A
A
2)模板具现化实例
#include<iostream>
#include<vector>
using namespace std;
class animal{
public:
void voice(){
cout<<"动物叫声"<<endl;
}
};
class Cat:public animal{
public:
void voice(){
cout<<"喵喵~"<<endl;
}
};
class Dog:publi