📅  最后修改于: 2023-12-03 14:39:59.382000             🧑  作者: Mango
C++ 中的函数重写(Function overriding)是指在派生类中定义与基类中相同名称、参数列表和类型的函数。
在函数重写中,基类中的函数称为基函数,派生类中的函数称为派生函数。派生函数必须与基函数具有相同的返回类型,或者返回类型是基函数的返回类型的公有派生。
函数重写语法如下:
class Base{
public:
virtual void print(){
cout << "Print base class function." << endl;
}
};
class Derived:public Base{
public:
void print(){
cout << "Print derived class function." << endl;
}
};
#include <iostream>
using namespace std;
class Base{
public:
virtual void print(){
cout << "Print base class function." << endl;
}
};
class Derived:public Base{
public:
void print(){
cout << "Print derived class function." << endl;
}
};
int main()
{
Base* base_pointer;
Derived der;
base_pointer = &der;
base_pointer->print();
return 0;
}
输出结果为:
Print derived class function.
在这个示例中,Base 类中有一个 print 函数,Derived 类继承了 Base 类,并在该类中对 print 函数进行了重写。
在 main() 函数中,定义了一个指向 Base 类对象的指针 base_pointer,然后用 Derived 类的对象指针来为 base_pointer 赋值,然后调用 base_pointer 的 print 函数。由于指针是指向一个派生类对象的,所以会调用派生类的 print 函数。
C++ 的函数重写使得程序可以根据对象的不同类型来调用相应的函数。在面向对象的编程中,函数重写是一种常见的技术,是实现多态性的重要手段之一。