C++中动态联编与静态联编
1.函数联编 将代码中的函数调用解释为执行特定的函数代码块,叫做函数联编。 函数联编分为静态联编和动态联编: 静态联编:在编译过程中进行联编,又称早期联编; 动态联编:在程序运行时进行联编,又称晚期联编; 在C++中,动态联编与通过指针和引用调用方法有关,其实可以说,这是由继承控制的。通常,C++不允许将一种类型的地址赋给另一种类型的指针,也不允许一种类型的引用指向另一种类型。 但是,这也有例外,指向基类的引用或指针可以引用派生类对象,而不必进行显式类型转换(将派生类指针或引用转换为基类引用或指针被称为向上强制类型转换);反过来,将基类指针或引用转换为派生类指针或引用被称为向下强制类型转换。注意,如果不使用显式类型转换,则向下强制类型转换是不允许的。 2.结合代码理解 class Animal { //动物基类 private : //...... public : virtual void eat ( ) const { cout << "动物吃方法!!" << endl ; } //...... } ; class Dog : public Animal { //狗类派生于动物类 private : //...... public : void eat ( ) const { cout << "狗吃骨头!!!" << endl ; } //...... } ;