找回密码
 立即注册

QQ登录

只需一步,快速开始

工控课堂 首页 工控文库 上位机编程 查看内容

C++中虚函数的缺省参数值

2022-4-17 18:17| 发布者: 198366809| 查看: 1894| 评论: 0|来自: 算法集市(头条)

摘要: 知识点:C++中虚函数是动态绑定的,但函数的缺省参数确实在编译时就静态绑定的。若在虚函数中,指定了形参的缺省参数值,这意味着最终执行的函数是一个定义在派生类,但使用了基类的缺省参数值的虚函数。比如下面这 ...

C++中虚函数的缺省参数值

知识点:C++中虚函数是动态绑定的,但函数的缺省参数确实在编译时就静态绑定的。

若在虚函数中,指定了形参的缺省参数值,这意味着最终执行的函数是一个定义在派生类,但使用了基类的缺省参数值的虚函数。

比如下面这段代码:

#include <iostream>
using namespace std;

class base {
public:
    virtual void Display1() {
        cout << "Base: Display1" << endl;
    }
    virtual void Display2(const int x = 1) {
        cout << "Base: Display2: " << x << endl;
    }
};

class derived : public base {
public:
    virtual void Display1() {
        cout << "Derived: Display1" << endl;
    }
    virtual void Display2(const int x = 2) {
        cout << "Derived: Display2: " << x << endl;
    }
};

int main()
{
    base *pBase = new derived;
    pBase->Display1(); // 实现多态
    pBase->Display2(); // 未实现多态
  
    delete pBase;
    pBase = nullptr;
  
    return 0;
}

运行结果如下:

C++中虚函数的缺省参数值

可以看出,Display1()调用了派生类的函数,实现了多态;而Display2()虽然调用了派生类的函数,但却使用了基类的缺省参数值,未能完全实现多态。

C++中虚函数的缺省参数值


关注公众号,加入500人微信群,下载100G免费资料!

最新评论

热门文章
关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-22 22:45 , Processed in 0.174413 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

返回顶部