C++中如何实现派生类函数重载与虚函数继承的详细解析?

2026-05-22 16:240阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1781个文字,预计阅读时间需要8分钟。

C++中如何实现派生类函数重载与虚函数继承的详细解析?

目录

一、作用域与名称查找

1.作用域的嵌套

2.在编译时进行名称查找

3.名称冲突与继承

4.通过作用域运算符来使用隐藏的成员

二、同名函数隐藏与虚函数覆盖

1.几种必要的区域划分情况

目录
  • 一、作用域与名字查找
    • 1.作用域的嵌套
    • 2.在编译时进行名字查找
    • 3.名字冲突与继承
    • 4.通过作用域运算符来使用隐藏的成员
  • 二、同名函数隐藏与虚函数覆盖
    • 1.几种必须区分的情况
    • 2.一个更复杂的例子

类的关系图:

一、作用域与名字查找 1.作用域的嵌套

派生类的作用域嵌套在基类之内

Bulk_quote bulk; cout<< bulk.isbn();

名字isbn解析过程:

  • 因为我们是通过Bulk_quote的对象调用isbn的,所以首先在Bulk_quote中查找,这一步没有找到名字isbn。
  • 因为 Bulk_quote是Disc_quote 的派生类,所以接下来在Disc_quote中查找,仍然找不到。
  • 因为Disc_quote是Quote的派生类,所以接着查找Quote;此时找到了名字isbn,所以我们使用的isbn最终被解析为Quote中的isbn。
阅读全文

本文共计1781个文字,预计阅读时间需要8分钟。

C++中如何实现派生类函数重载与虚函数继承的详细解析?

目录

一、作用域与名称查找

1.作用域的嵌套

2.在编译时进行名称查找

3.名称冲突与继承

4.通过作用域运算符来使用隐藏的成员

二、同名函数隐藏与虚函数覆盖

1.几种必要的区域划分情况

目录
  • 一、作用域与名字查找
    • 1.作用域的嵌套
    • 2.在编译时进行名字查找
    • 3.名字冲突与继承
    • 4.通过作用域运算符来使用隐藏的成员
  • 二、同名函数隐藏与虚函数覆盖
    • 1.几种必须区分的情况
    • 2.一个更复杂的例子

类的关系图:

一、作用域与名字查找 1.作用域的嵌套

派生类的作用域嵌套在基类之内

Bulk_quote bulk; cout<< bulk.isbn();

名字isbn解析过程:

  • 因为我们是通过Bulk_quote的对象调用isbn的,所以首先在Bulk_quote中查找,这一步没有找到名字isbn。
  • 因为 Bulk_quote是Disc_quote 的派生类,所以接下来在Disc_quote中查找,仍然找不到。
  • 因为Disc_quote是Quote的派生类,所以接着查找Quote;此时找到了名字isbn,所以我们使用的isbn最终被解析为Quote中的isbn。
阅读全文