解析成员函数重载-- 隐藏-- 覆盖

来源:互联网 发布:网站搜索软件 编辑:程序博客网 时间:2024/05/21 19:40

概念:

重载在同一个作用域下,函数名相同,但函数参数列表不同(参数个数,类型,顺序)。

隐藏:指派生类成员函数遮蔽了与这个函数同名的基类中的函数。

          (1)派生类成员函数与基类成员函数同名,但参数列表不同。

          (2)派生类成员函数与基类成员函数同名,且参数列表相同,但基类中函数并没有用virtual关键字修饰

覆盖:派生类重写基类成员函数(多用于多态中)

           (1)基类中的函数必须是虚函数(用virtual修饰)

           (2)在不同的作用域,一个是基类,一个是派生类。

           (3)函数名称和参数列表完全相同(函数原型相同)


代码实例:

#include<iostream>using namespace std;class B{public:void Get(int,int){cout <<" B::Get()" << endl;}void Find()//与下面的fun(int a,int b)构成重载{cout << "B::Find()" << endl;}void Find(int a, int b){cout << "B::Find(int a,int b)" << endl;}virtual void Sum(int, int){cout << "B::Sum()" << endl;}};class C:public B{public:void Get(int,int)//函数隐藏{cout << "C::Get()" << endl;}virtual void Sum(int, int)//函数重写{cout << "C::Sum()" << endl;}};int main(){C c;C *pb =&c;pb->Get(5, 4);//C::Get()pb->Find();   //B::Find()pb->Sum(5, 4);//C::Sum()system("pause");return 0;}



0 0
原创粉丝点击