栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++的多态

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++的多态

C++的多态 什么是多态

C++允许子类的成员函数重载基类的成员函数,即子类与基类有相同名称的成员函数,而一个对象调用成员函数时,两个重载的函数都在它自己可使用范围内。C++的继承机制中用一种称为多态性的技术来解决调用哪一个成员函数的问题。这种在运行时,能依据其类型确认调用哪个函数的能力,称为多态性,或称迟后联编,也有的译为滞后联编。

多态如何工作:虚函数

为了指明某个成员函数具有多态性,用关键字virtual来标志其为虚函数。

例如:

class Member {
protected:
    int num;
    int point;
    string name;
public:
    Member(int nnum, int ppoint, string name1)
    {
        num = nnum;
        point = ppoint;
        name = name1;
    }
    virtual void add(int money)
    {
        point += money;
    }
    virtual void exchange(int ppoint)
    {
        ppoint = ppoint / 100;
        point -= ppoint * 100;
    }
    
class VIP :public Member
{
protected:
    int p1, p2;
public:
    VIP(int num, int point, string name, int pp1, int pp2) : Member(num, point, name)
    {
        p1 = pp1;
        p2 = pp2;
    };
    virtual void add(int money)
    {
        point += money * p1;
    }
    virtual void exchange(int ppoint)
    {
        ppoint = ppoint / p2;
        point -= ppoint * p2;
    }

add和exchange这两个成员函数在声明时加了关键字—virtual,其拥有多态性。

虚函数的限制

1.只有类的成员函数才能说明为虚函数

2.静态成员函数不能是虚函数

3.内联函数不能是虚函数

4.构造函数不能是虚函数

5.析构函数可以是虚函数,而且通常声明为虚函数

纯虚函数

所谓纯虚函数是指被注明为不具体实现的虚成员函数。往往设置在基类,通常其表现形式为:

virtual 返回值 函数名称(变量)= 0;

"=0"表明程序员将不定义该函数。该声明是为派生类保留位置。由派生类进行具体的重载。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/690809.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号