overload
重载,将语义相近的几个函数用同一个名字表示,但是参数和返回值不同。
class A{
public:
void test(int i);
void test(double i);
void test(int i, double j);
void test(double i, int j);
int test(int i);
};
特征:函数名字相同,参数不同。
override
覆盖,派生类覆盖基类的虚函数,实现接口的重用。
#include<iostream>
using namespace std;
class A{
public:
virtual void fun3(int i){
cout << "A::fun3() : " << i << endl;
}
};
class B : public A{
public:
virtual void fun3(int i){
cout << "B::fun3() : " << i << endl;
}
};
int main(){
A a;
B b;
A * pa = &a;
pa->fun3(3);
pa = &b;
pa->fun3(5);
system("pause");
return 0;
}
特征:位于派生类当中,函数名字相同,参数相同,基类中必须有vitural关键字,即必须是虚函数
overwrite
重写,派生类屏蔽了其同名的基类函数 特征:位于派生类中,函数名字相同,参数不同或者相同,基类中没有virtual关键字,其实和覆盖一样
|