继承-进阶-易错点

news2025/2/28 17:15:42

子类同名方法隐藏父类方法

即使调用不匹配也不会再去父类寻找,而是直接报错

//下面代码输出结果:( )

class A
{
public:
  void f(){ cout<<"A::f()"<<endl; }
  int a;   
};

class B : public A
{
public:
  void f(int a){cout<<"B::f()"<<endl;}
  int a;
};

int main()
{
  B b;
  b.f();
  return 0;
}

易错:父子类大小关系

private不能被继承(why)

基类中的private成员不可被继承,虽然子类中存在父类中的private成员。之所以说不可继承是因为“继承”通常指的是能否直接访问和使用父类的成员,而不是空间上是否含有相应成员

友元函数不可被继承

类似于 : 父亲的朋友不一定是儿子的朋友

子类和父类共享继承来的静态变量

实例代码:

#include <iostream>

class Parent {
public:
    static int sharedStaticVariable;
    
    static void display() {
        std::cout << "Parent's sharedStaticVariable: " << sharedStaticVariable << std::endl;
    }
};

// 定义并初始化静态成员变量
int Parent::sharedStaticVariable = 42;

class Child : public Parent {
public:
    static void displayChild() {
        std::cout << "Child's sharedStaticVariable: " << sharedStaticVariable << std::endl;
    }
};

int main() {
    // 通过父类访问静态变量
    std::cout << "Access through Parent:" << std::endl;
    Parent::display();

    // 通过子类访问静态变量
    std::cout << "Access through Child:" << std::endl;
    Child::display();
    
    // 修改子类中的静态变量
    Child::sharedStaticVariable = 100;

    // 再次通过父类访问静态变量
    std::cout << "Access through Parent after modification in Child:" << std::endl;
    Parent::display();

    // 再次通过子类访问静态变量
    std::cout << "Access through Child after modification in Child:" << std::endl;
    Child::display();

    return 0;
}

运行结果:

Access through Parent:
Parent's sharedStaticVariable: 42
Access through Child:
Parent's sharedStaticVariable: 42
Access through Parent after modification in Child:
Parent's sharedStaticVariable: 100
Access through Child after modification in Child:
Parent's sharedStaticVariable: 100

同名隐藏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1823314.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

若依微服务Docker部署验证码出不来怎么办?

最近,有许多人反馈在使用 Docker 部署若依微服务项目时,遇到验证码无法显示的问题。本文将重点介绍解决该问题的注意事项以及整个项目的部署流程。之前我们也撰写过微服务部署教程,本文将在此基础上进行优化和补充。你也可以参考我之前写的部署教程:https://yang-roc.blog.…

做材料科学领域研究热点:高通量多尺度材料计算和机器学习

研究背景 材料科学是一个重要领域&#xff0c;涉及物质的研究和利用。随着科技进步&#xff0c;材料学已成为多学科交叉的前沿领域之一&#xff0c;融合物理、化学、数学、信息、力学和计算科学等知识。寻找更坚固的新材料已成为当今急需解决的问题。 材料基因工程作为一项颠覆…

万相台的功能是什么?如何使用万相台?

1.特点&#xff1a; 万相台是一个智能渠道&#xff0c;可控性弱&#xff0c;高转化&#xff0c;人群&关键词是黑盒&#xff1b; 2.场景多&#xff1a; 有拉新快、活动加速、上新快、货品加速、活动加速、多目标直投、全站推等&#xff1b; 3.扣费逻辑&#xff1a;cpc付…

Elasticsearch:简化数据流的数据生命周期管理

作者&#xff1a;来自 Elastic Andrei Dan 今天&#xff0c;我们将探索 Elasticsearch 针对数据流的新数据管理系统&#xff1a;数据流生命周期&#xff0c;从版本 8.14 开始提供。凭借其简单而强大的执行模型&#xff0c;数据流生命周期可让n 你专注于数据生命周期的业务相关方…

动态规划-简单多状态dp问题 -- 按摩师

动态规划-简单多状态dp问题 – 按摩师 文章目录 动态规划-简单多状态dp问题 -- 按摩师题目重现算法流程示例代码 题目重现 题目链接&#xff1a;按摩师 - 力扣 一个有名的按摩师会收到源源不断的预约请求&#xff0c;每个预约都可以选择接或不接。在每次预约服务之间要有休息时…

Linux网络编程:多路转接|select|poll

目录 前言&#xff1a; 1.IO多路转接---select 1.1.接口认识 1.2.select如何进行多路转接 1.3.select多路转接的优缺点 2.IO多路转接---poll 2.1.接口认识 2.2.poll如何进行多路转接 2.3.poll多路转接优缺点 前言&#xff1a; 多路转接&#xff08;也称为IO多路复用&a…

留住马斯克和AI,股价连续大涨,但特斯拉还是贵?

留住马斯克和AI&#xff0c;股价连续大涨&#xff0c;但特斯拉还是贵&#xff1f; 特斯拉股东们花了560亿美元留住马斯克&#xff0c;但特斯拉的前景依旧迷雾重重&#xff0c;估值比一众科技巨头贵&#xff0c;汽车一季度销量疲弱&#xff0c;股价今年来累计下跌29%&#xff0…

mysql导入sql文件失败及解决措施

1.报错找不到表 1.1 原因 表格创建失败&#xff0c;编码问题mysql8相较于mysql5出现了新的编码集 1.2解决办法&#xff1a; 使用vscode打开sql文件ctrlh&#xff0c;批量替换&#xff0c;替换到你所安装mysql支持的编码集。 2.timestmp没有设置默认值 Error occured at:20…

LangChain入门学习笔记(三)—— Model I/O之Prompts

如果说LCEL是粘合剂&#xff0c;那么它需要粘合起来的要素就是各种组件。其中最核心的要素就是LangChain官方文档中定义的Model I/O&#xff1a;Prompts、Chat Models、LLMs和Output Parsers。这4个基本组件&#xff0c;可以处理基本的用户输入并通过大模型处理后按要求输出。 …

SpringBoot的Mybatis-plus实战之核心功能

文章目录 一、条件构造器二、自定义SQL第一步、基于wrapper构建where条件第二步、在mapper中声明变量名称第三步、自定义SQL 本篇继续MybatisPlus核心功能 一、条件构造器 MybatisPlus 支持各种复杂的where条件&#xff0c;可满足日常开发的所有需求。 使用到wrapper构造器&am…

代理服务

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在爬取网页的过程中&#xff0c;经常会出现不久前可以爬取的网页现在无法爬取了&#xff0c;这是因为您的IP被爬取网站的服务器所屏蔽了。此时代理服…

银河麒麟系统安装

新建虚拟机 选择典型下一步&#xff1a; 稍后安装操作系统 下一步 &#xff1a; 选择Linux Ubuntu 64位 下一步&#xff1a; 设置名称 选择一个虚拟机的位置进行下一步&#xff1a; 磁盘大小默认给20G 下一步&#xff1a; 点击完成 编辑虚拟机设置 点击CD/DVD(SATA) 使用IS…

27.设计注入功能界面

上一个内容&#xff1a;26.入口点注入项目搭建 使用 26.入口点注入项目搭建 它的代码为基础进行修改 效果图&#xff1a; 首先设置一些主窗口的边框属性 然后在IDD_PAGE_0里添加一个List Control 再给List Control设置调整大小类型属性 然后再给它添加一个变量 然后在拖入一个…

Linux 线程控制

&#x1f493;博主CSDN主页:麻辣韭菜&#x1f493;   ⏩专栏分类&#xff1a;Linux初窥门径⏪   &#x1f69a;代码仓库:Linux代码练习&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多Linux知识   &#x1f51d; 目录 前言 1.线程现象 2.线程等待 3.线程…

AutoCAD 2025 ObjectARX(C++)二次开发环境搭建

&#xff08;原文&#xff1a;https://blog.iyatt.com/?p16480&#xff09; 基本环境 AutoCAD 机械版 2025 Visual Studio 2022&#xff08;需要安装“C 桌面开发”&#xff09; 开发环境 下载 &#xff08;1&#xff09;ObjectARX SDK 下载&#xff08;提供开发使用的 …

MacOS下如何使用Tomcat

提示&#xff1a;宝子们&#xff0c;希望文章对你们有所帮助&#xff0c; 请一键三连支持博主下吧&#xff5e; 文章目录 前言一、Tomcat 压缩版二、Tomcat可执行文件版本最后 前言 电脑环境&#xff1a; MacOS Monterey 版本 12.6.8 Apple M1 Tomcat 9.0.83 Java 1.8.0_171 …

(三十)Flask之wtforms库【剖析源码上篇】

每篇前言&#xff1a; &#x1f3c6;&#x1f3c6;作者介绍&#xff1a;【孤寒者】—CSDN全栈领域优质创作者、HDZ核心组成员、华为云享专家Python全栈领域博主、CSDN原力计划作者 &#x1f525;&#x1f525;本文已收录于Flask框架从入门到实战专栏&#xff1a;《Flask框架从入…

收银系统源码-千呼新零售2.0【连锁店财务管理】

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货等连锁店使用。 详细介绍请查看下…

金融与大模型:引领行业未来的创新融合

前言 在数字化浪潮席卷全球的今天&#xff0c;金融与大模型的结合正成为行业发展的新引擎。这种融合不仅为金融机构带来了前所未有的效率和准确性&#xff0c;也为金融市场的稳定与发展注入了新的活力。本文将基于当前的市场现状&#xff0c;结合金融环境的发展&#xff0c;深…

探索大数据在信用评估中的独特价值

随着我国的信用体系越来越完善&#xff0c;信用将影响越来越多的人。现在新兴的大数据信用和传统信用&#xff0c;形成了互补的优势&#xff0c;大数据信用变得越来越重要&#xff0c;那大数据信用风险检测的重要性主要体现在什么地方呢?本文将详细为大家介绍一下&#xff0c;…