基类和派生类中都有c()函数,创建一个派生类对象,用基类指针指向派生类对象,用指针调用c(),执行的是基类还是派生类中的c()
时间: 2024-04-14 20:30:43 浏览: 107
如果基类和派生类中都有名为 `c()` 的函数,并且你使用基类指针指向派生类对象,那么通过指针调用 `c()` 函数将会执行基类中的函数。
这是因为在 C++ 中,通过基类指针调用函数时,编译器会根据指针的类型进行静态绑定。在这种情况下,编译器将根据指针的类型(即基类类型)来查找和调用函数,而不管指针实际指向的是基类对象还是派生类对象。
如果你希望通过指针调用派生类中的函数,可以将函数声明为虚函数。在基类中将 `c()` 声明为虚函数,在派生类中重新定义该函数。这样,通过基类指针调用 `c()` 函数时,将会根据指针所指向的对象的类型来动态绑定,从而执行派生类中的函数。
阅读全文