假定基类和派生类分别提供了一个具有相同声明的成员函数。如果你有一个指向基类对象的指针,并通过该指针调用一个成员函数,请解释是什么决定了最终调用的函数是基类的成员函数还是派生类的成员函数?
时间: 2023-06-14 14:04:15 浏览: 77
基类,派生类
5星 · 资源好评率100%
如果基类和派生类都提供了一个具有相同声明的成员函数,那么最终调用的函数将取决于指针的静态类型,即指针所声明的类型。如果指针指向基类对象,则调用基类的成员函数。如果指针指向派生类对象,则调用派生类的成员函数。这是因为在运行时,编译器会根据指针的静态类型来确定可用的成员函数,而不考虑指针所指向的实际对象类型。这种行为被称为静态绑定。如果希望在运行时动态地选择要调用的函数,则需要使用虚函数。
阅读全文