继承-进阶-易错点

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

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

//下面代码输出结果:( )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.mzph.cn/web/27249.shtml

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

相关文章

【Android面试八股文】Android开发中怎样判断当前线程是否是主线程?

文章目录 1. 使用 `Looper.getMainLooper()`2. 使用 `Handler`3. 使用 `Activity` 或 `View` 的方法4. 使用 Thread 类的 isMainThread 方法示例代码在Android开发中,判断当前线程是否是主线程(也称为UI线程)非常重要,因为只有主线程才能更新UI。 以下是几种常用的方法来判…

Qt6的获取调色板颜色和Qt5不一样了

Qt5中是[static] QRgb QColorDialog::getRgba(QRgb initial 0xffffffff, bool *ok nullptr, QWidget *parent nullptr) 而Qt6更加直接了&#xff0c;[static] QColor QColorDialog::getColor(const QColor &initial Qt::white, QWidget *parent nullptr, const QStri…

Excel使用技巧(一)

一. 快速调整数据位置 已经录入数据的表格&#xff0c;要调整某一列的位置怎么办&#xff1f; 只要选中要调整的数据区域&#xff0c;然后按住Shift键不放&#xff0c;光标放到绿色边框位置后&#xff0c;按下鼠标左键不放拖动即可&#xff1a; 二. 取消合并单元格并恢复数据…

电商项目-day03

文章目录 退出登录流程首先判断前端后端逻辑 登录验证的思路和ThreadLocal讲解 退出登录流程 首先判断前端 首先定义退出请求 // 退出登录 export const Logout () > {return request({url: ${api_name}/logout,method: get,})}const api_name “admin/system/index”; …

「C系列」C 字符串及操作字符串的函数

文章目录 一、C 字符串1. 声明和初始化字符串2. 访问字符串中的字符3. 字符串的长度4. 字符串的复制和连接5. 字符串的比较6. 字符串的查找 二、C 操作字符串的函数三、相关链接 一、C 字符串 在C语言中&#xff0c;字符串是由字符&#xff08;包括字母、数字、标点符号等&…

深入理解 JVM 的几种常见垃圾回收算法

在线工具站 推荐一个程序员在线工具站&#xff1a;程序员常用工具&#xff08;http://cxytools.com&#xff09;&#xff0c;有时间戳、JSON格式化、文本对比、HASH生成、UUID生成等常用工具&#xff0c;效率加倍嘎嘎好用。 程序员资料站 推荐一个程序员编程资料站&#xff1a;…

Django DeleteView视图

Django 的 DeleteView 是一个基于类的视图&#xff0c;用于处理对象的删除操作。 1&#xff0c;添加视图函数 Test/app3/views.py from django.shortcuts import render# Create your views here. from .models import Bookfrom django.views.generic import ListView class B…

信息科学与工程学院第五届大学生程序设计竞赛——热身赛

A:X星人的地盘 题目描述 一天&#xff0c;X星人和Y星人在一张矩形地图上玩抢地盘的游戏。 X星人每抢到一块地&#xff0c;在地图对应的位置标记一个“X”&#xff1b;Y星人每抢到一块地&#xff0c;在地图对应的位置标记一个“Y”&#xff1b;如果某一块地无法确定其归属则标记…

2024050901-重学 Java 设计模式《实战访问者模式》

重学 Java 设计模式&#xff1a;实战访问者模式「模拟家长与校长&#xff0c;对学生和老师的不同视角信息的访问场景」 一、前言 能力&#xff0c;是你前行的最大保障 年龄会不断的增长&#xff0c;但是什么才能让你不慌张。一定是能力&#xff0c;即使是在一个看似还很安稳…

Web后端开发的学习

REST风格 GET:查询用户POST:新增用户POT:修改用户DELETE:删除用户 前后端交互统一的响应结果 记录日志 SLf4j 注解&#xff1a; PathVariable&#xff1a;获取路径的参数ResponseBody :方法的返回值直接作为 HTTP 响应的正文返回,将响应的实体类转为json发送给前端Request…

svm 超参数

https://www.cnblogs.com/ChevisZhang/p/12932674.html https://wenku.baidu.com/view/b8a2c73cfd4733687e21af45b307e87100f6f861.html?wkts1718332423081&bdQuerysvm%E7%9A%84%E8%B6%85%E5%8F%82%E6%95%B0 用交叉验证找到最好的参数 C 和γ 。使用 RBF 核时&#xff0c…

【RabbitMQ】RabbitMQ 的 6 种工作模式

RabbitMQ 的 6 种工作模式 1.简单模式2.工作队列模式3.交换机模式4.Routing 转发模式5.主题转发模式6.RPC 模式6.1 消息属性6.2 关联标识6.3 工作流程 7.小结 1.简单模式 生产者把消息放入队列&#xff0c;消费者获得消息&#xff0c;如下图所示。这个模式只有 一个消费者、一…

v8中使用TensorBoard进行训练可视化(可用于论文)(补充版,接上一篇文章)

我们可以边训练&#xff0c;边通过TensorBoard观察损失函数的变化&#xff0c;同时也可以通过TensorBoard去查看整体网络yaml结构&#xff0c;不再需要人工根据yaml去画网络结构了。 训练v8的时候&#xff0c;重新打开新的终端&#xff1a; 虚拟环境下输入并执行&#xff1a;&…

redis序列化

文章目录 1、为什么要进行序列化操作&#xff1f;2、序列化方式2.1、自定义序列化2. 2、StringRedisTemplate&#xff08;重点&#xff09; 1、为什么要进行序列化操作&#xff1f; 不进行序列化向redis存入数据代码&#xff1a; SpringBootTest class RedisDemoApplicationT…

C++格式化输出时间

前言 使用time函数、tm结构体、local函数、put_time函数实现格式化输出时间。 形如[2024-06-14 18:19:14] 格式化时间代码实现 void Print_Time() {// 获取当前时间戳time_t now_time time(nullptr);// 将time_t 转换为tm结构std::tm* local localtime(&now_time);// 格…

日常销售数据分析为什么重要?三个维度全面分析日常销售数据

在当今电子商务的浪潮席卷全球的时代&#xff0c;网店如雨后春笋般涌现&#xff0c;并且竞争日趋激烈。在这样一个充满挑战与机遇的环境中&#xff0c;如何洞察市场动向&#xff0c;把握消费者需求&#xff0c;实现销售业绩的稳步增长&#xff0c;成为每一位电商运营者必须面对…

查看ubuntu中的分区是什么类型的

sudo file -sL /dev/sda1#输出 /dev/sda1: Linux rev 1.0 ext4 filesystem data ...使用 lsblk 或 fdisk 列出所有分区&#xff0c;确认你需要恢复文件的分区路径。 lsblksudo fdisk -l输出会显示所有磁盘和分区信息。确保你选择了正确的分区。例如&#xff1a; /dev/sda1 2…

【YOLOv8改进[注意力]】在YOLOv8中添加GAM注意力 + 含全部代码和详细修改方式 + 手撕结构图

本文将进行在YOLOv8中添加GAM注意力的实践,助力YOLOv8目标检测效果的实践,文中含全部代码、详细修改方式以及手撕结构图。助您轻松理解改进的方法,实现有效涨点。 改进前和改进后的参数对比: 目录 一 GAM 二 在YOLOv8中添加GAM注意力 1 整体修改 2 配置文件

M41T11M6F串行实时时钟-国产兼容RS4C411

RS4C411是一款低功耗串行实时时钟&#xff08;RTC&#xff09;&#xff0c;具有56字节的NVRAM。内置32.768 kHz振荡器&#xff08;外部晶体控制&#xff09;和RAM的前8字节用于时钟/日历功能&#xff0c;并以二进制编码十进制&#xff08;BCD&#xff09;格式配置。地址和数据通…

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 …