C++多态表现形式主要有函数重载、运算符重载和虚函数等,其中函数重载、运算符重载是静态多态,虚函数是动态多态。也就是说,C++中运行时的多态性主要是通过虚函数重载来实现的。
1.静态多态
静态链编或早绑定:编译器在编译期间完成的,编译器根据函数实参的类型(可能会进行隐式类型转换),可推断出要调用哪个函数,如果有对应的函数就调用该函数,否则出现编译错误。
2.动态多态
动态链编或晚绑定:在程序执行期间(非编译期)判断所引用对象的实际类型,根据其实际类型调相应的方法。
C++多态表现形式主要有函数重载、运算符重载和虚函数等,其中函数重载、运算符重载是静态多态,虚函数是动态多态。也就是说,C++中运行时的多态性主要是通过虚函数重载来实现的。
1.静态多态
静态链编或早绑定:编译器在编译期间完成的,编译器根据函数实参的类型(可能会进行隐式类型转换),可推断出要调用哪个函数,如果有对应的函数就调用该函数,否则出现编译错误。
2.动态多态
动态链编或晚绑定:在程序执行期间(非编译期)判断所引用对象的实际类型,根据其实际类型调相应的方法。