虚析构函数

2023-11-04

 自动调用基类部分的析构函数对基类的设计有重要影响。

    删除指向动态分配对象的指针时,需要运行析构函数,在释放对象的内存之前清除对象

处理继承层次中的对象时,指针的静态类型可能与被删除对象的动态类型不同,可能会删除

实际指向派生类对象的基类类型指针。

    如果删除基类指针,则需要运行基类析构函数并清除基类的成员,如果对象

实际是派生类类型的,则没有定义该行为。要保证运行适当的析构函数,基类中的

析构函数必须为虚函数。

class ItemBase{
public :
//no work ,but virual destructor needed
//if base pointer that points to a derived object is ever deleted
//基类指针指向派生类对象
virtual ~ItemBase(){}

};

   如果析构函数为虚函数,那么通过指针调用时,运行哪个析构函数将因指针所指向对象

类型不同而不同。


ItemBase *itemP = new ItemBase; //same static and dynamic type
delete itemP; //ok:destructor for ItemBase called
itemP = new BulkItem;   //ok : static and dynamic tpe differ

delete Item

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

虚析构函数 的相关文章

  • 用Java写数据到POST请求

    用Java写数据到POST请求 HTTP POST请求最常见的用途是发送表单参数到服务器 除了发送表单数据 还可以使用POST的消息Body体发送各种数据 如纯文本 XML文档等 本文讲述如何用Java将数据写入POST请求的Body体 j
  • Filter的应用--权限过滤

    因为项目比较长 需要一步步进行实现 所以分解成一个一个需求 一 需求一 1 需求一 可以看某人的权限 同时 可以对这个用户进行权限的修改 2 程序实现 3 程序目录 4 User java 1 package com web 2 3 imp
  • 2023 Google 开发者大会,共创、赋能开发者

    前言 9月6日 2023 Google 开发者大会在上海拉开帷幕 在本次大会 Google 将技术灵感带到了中国 在为期两天的大会中 让我印象最为深刻的是 谷歌帮助中国开发者释放潜能 持续创新 落地创意灵感 不管你是 Mobile 开发者
  • 算子策略如何配,调试宝典帮你忙

    前面几期讲解了网络构建与训练类报错中各类错误的定位解决方法 相信大家应该对于此类问题有一些较为深入的认识了 在深度学习中 当数据集和参数量的规模越来越大 训练所需的时间和硬件资源会随之增加 最后会变成制约训练的瓶颈 分布式并行训练 可以降低
  • JSVC简介之快速入门

    1 JSVC简介 Apache基金会会common 类似于guava 项目下的项目 2 为什么要使用JSVC java应用增加一种启动方式 Java的缺点 只能用main方法启动 应用能使用1024以下端口 为啥tomcat可以指定端口 系
  • python中多线程编程中eoferror_面试官:请你讲讲Python多线程多进程编程

    Python多线程多进程文章目录并行和并发的概念 线程和进程的概念 来点八股文 PythonGIL锁相关以及历史 多线程编程详解 多进程编程详解 重点 一 什么是并行和并发 首先我们来先说一下一个简单的共同点 并行和并发都是完成多任务更加有
  • python QMessageBox设置标签和按钮居中、中文按钮

    from PyQt5 QtCore import Qt from PyQt5 QtWidgets import QApplication QMessageBox QLabel QDialogButtonBox from PyQt5 QtGu
  • IDEA报错 Cannot resolve method ‘xxx‘ in ‘xxx‘

    今天在用Logback做一个小项目的时候 出现了这个bug 一下子给我报了50个错误 如下图所示 后面经过10分钟左右的排查 在网上搜寻解决方式 网上的解决方案差不多有以下三种 1 重装Logback 2 清除IDE缓存 3 重新导包导库
  • 写入位置时发生访问冲突

    写入位置时发生访问冲突是因为待写入的内存空间不能被写入 可能的情况 给野指针赋值 通常在调试的时候 如果一个指针指向的地址为0x00000000那么表示这个指针不指向任何地址 参考文章 1 2
  • Lesson40 FIFO的配置与使用

    摄像头的FIFO配置使用 一 FIFO的基本工作原理讲解 二 Vivado中FIFO IP的添加和基本配置 三 IP文档资料的获取方法 四 编写测试脚本 1 复制 FIFO 的例化模板 2 新建存放FIFO仿真文件的文件夹 3 全部的仿真代
  • 用opencv简单的检测三角形、正方形、圆以及它们的颜色

    源码下载地址点击打开链接 原始图片 检测结果 检测后图片 下面为完整代码 include
  • 【雕爷学编程】Arduino动手做(65)---红外寻迹传感器

    37款传感器与执行器的提法 在网络上广泛流传 其实Arduino能够兼容的传感器模块肯定是不止这37种的 鉴于本人手头积累了一些传感器和执行器模块 依照实践出真知 一定要动手做 的理念 以学习和交流为目的 这里准备逐一动手尝试系列实验 不管
  • C++ 类模板

    目录 1 定义 2 验证类模板生成的类定义 3 非类型参数 4 模板别名 5 模板类 6 多个参数类型 7 类型参数默认值 8 模板类作为模板函数的入参 9 模板具体化 10 成员模板 11 将模板类用作类型参数 12 模板类中的友元 1
  • GPT模型介绍并且使用pytorch实现一个小型GPT中文闲聊系统

    文章目录 GPT模型介绍 无监督训练方式 模型结构 微调 下游任务输入形式 GPT 2 GPT 3 pytorch实现一个小型GPT中文闲聊系统 GPT模型介绍 GPT与BERT一样也是一种预训练模型 与BERT不同的是 GPT使用的是Tr
  • 【转载】LaTeX 各种命令和符号

    LaTeX 各种命令 符号 前言 前言 在别人博客看到特别好的介绍LaTeX 各种命令 符号 而自己又经常需要查阅 所以转载过来到自己的博客以便自己后续学习 特别好的整理 再次感谢博主 同时也是自己第一篇转载的文章hhh 函数 符号及特殊字
  • C#使用操作系统默认程序打开pdf,支持.NET Core跨平台,无视平台差异

    C 使用操作系统默认程序打开pdf 支持 NET Core跨平台 无视平台差异 System Diagnostics Process Start explorer D pdf 638086539413135758 pdf 参考文章 1 ht
  • uni、js——点击与禁用(不可点击)、动态样式class

    案例 没约满的时间可以点击进行选择 约满的就不能选择了 选择完之后变色变字 核心思想就是创建一个第三方变量存起来 点击谁就存到第三方 在根据这个进行判断 代码
  • 面试中 项目遇见的难点答案_2019 百度、头条、小米、360、网易、拼多多等公司 Android 社招面试心得...

    每到 金三银四 的季节 总人很多人去寻找名叫 面经 一样的东西 其实就是一个个具体的题目 然后临阵磨枪 去 背 答案 如果一直是这样的话 我相信你的能力不会有任何提高 即使工作三年五年也达不到高级工程师的水平 事实证明这类 程序员 占大多数
  • 测试技术

    单元测试的策略 逻辑覆盖 循环覆盖 同行评审 桌前检查 代码走查 代码评审 景泰数据流分析 白盒测试方法 六种覆盖方法中 覆盖准则由弱到强依次是语句覆盖 判定覆盖 分支覆盖 条件覆盖 判定 条件覆盖 条件组合覆盖 路径覆盖 其中 语句覆盖是
  • mysqld: File ‘./binlog.index‘ not found (OS errno 13 - Permission denied)

    背景 CentOS Stream 9安装Mysql8 0社区版时 为了修改端口 增加了my cnf文件 发现重启后报错 binlog index找不到 解决方法 1 关掉SELINUX root 192 mysql vi etc selin

随机推荐

  • JAVA异常实验:车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品

    车站检查危险品的设备 如果发现危险品会发出警告 编程模拟设备发现危险品 编写能够满足如下条件的程序 编写一个Exception的子类DangerException 该子类可以创建异常对象 该异常对象调用showMessage 方法输出 属于
  • Spring MVC 源码分析之 加载及查找 Controller

    目录 一 前言 二 查找Handler 2 1 回顾 doDispatch 2 2 查看 getHandler方法 2 3 handlerMappings的前世今生 三 补充说明 1 通过 方式 2 SpringBoot方式 四 总结 一
  • python中request、lxml、xpath使用

    request lxml xpath request 环境搭建 pip install requests 使用方法 下载完包之后 在项目中引入包 import requests 发送请求 get请求 import requests 通过re
  • 再谈type ahead 问题

    问题 给定一个词典 包括一些词和其出现的频率 实现type ahead功能 要求用户每键入一个字符 下拉框显示以当前输入为前缀的前10个最热门的词 解法1 用不带data的Trie data仅仅是词频 实时查询法 需要实时的去build h
  • redis cluster 实践总结

    最近项目接触到了redis cluster 现在趁着使用做一下总结 记录一下遇到过的问题 简单的概述一下常用到的命令和功能 本篇文章主要是以运维的角度去讲述如何去更好的规划redis cluster和跳坑 redis cluster 官方文
  • 解决springboot 启动类 &controller 不在一个module 显示404的问题

    1 启动类中添加扫描 SpringBootApplication scanBasePackages com zqm 2 启动类的pom依赖必须有controller中的pom依赖 3 如果有控制类多个module 都需要添加依赖 扫描 4
  • 代理IP基础、实际运用,以及如何获取

    代理IP是指通过一个中间服务器来转发用户的网络请求 从而在网络上隐藏用户的真实IP地址 或者绕过网络限制以达到访问特定内容的目的 下面是代理IP的一些基础知识 1 代理IP的分类 代理IP可以分为普匿代理IP 透明代理IP和高匿代理IP三种
  • 实现JS异步加载的三种方法

    一 为什么要写异步加载 js加载本身是属于同步加载的 加载js文件会阻塞文档 一旦网速不好 那么整个网站将等待js加载而不进行后续渲染等工作 但是有些工具方法需要按需加载 有一些工具js文件它是不会改变页面的 用到再加载 不用不加载 但是实
  • leetcode905–按奇偶排序数组(经典/原地排序)

    经典题目 给定一个非负整数数组 A 返回一个数组 在该数组中 A 的所有偶数元素之后跟着所有奇数元素 你可以返回满足此条件的任何数组作为答案 主要要掌握最优解 这道题很简单 类快排 你不是真正的快排 Note The returned ar
  • 如何为你的文本标签添加圆点、三角等不规则图形-保姆级教程

    1 通过无序列表 有序列表可以简单的生成带符号的文本 带符号的文本 https img blog csdnimg cn 9005611a7fa74d188ee071cd63fae0cf png 具体代码如下 h4 Disc 项目符号列表 h
  • Java实现内网穿透

    使用场景 1 当公司的一些系统功能使用了第三方服务时 通常第三方会回调我们的接口 在对接阶段 为了方便debug 我们肯定希望能回调到我们本地电脑上来 2 当你在公司想访问部署在家里电脑的服务或者文件时 3 当你的外地同事想访问你本地的服务
  • spring-boot-starter-data-mongodb 配置副本集读写分离、故障转移等

    一 为什么需要 MongoDB 副本集配置 副本集配置为数据库提供了高可用的保证 mongodb 副本集能够支持在主节点宕机的情况进行自动选主 同时利用多个从节点进行数据冗余 达到数据热备份的作用 同时由于数据同步 可支持读写分离 二 如何
  • es中must和should的组合查询

    使用must和should混用的时候 should不生效 列如 需要同时满足productRecomentd和location shold中满足一个条件就返回 经过多次测试 发现should不起效果 from 0 size 2 query
  • Java学习—字面常量值,变量,最终变量

    一 什么是字面常量值 他们是在程序中固定写死的的值 二 各种数据类型的表示 所有字符串类型的字面常量值必须加 所有char类型的字面常量值必须加 boolean类型的常量值只有两个 true false 浮点类型的常量值 没有加F或f的都是
  • unity 模型销毁_Unity3D常用 API 之实例化与销毁

    1 实例化游戏物体 1 1 游戏中的案例介绍 在很多 MMORPG 类的游戏中都有类似于 金钱副本 的副本关卡 在这类副 本中通常都是限定一个时间 在这个时间内玩家可以尽情的破坏 然后收集金钱 分析游戏截图讲解场景元素 见图 场景中所有的坛
  • latex 如何添加圆圈数字?

    众所周知 LATEX 提供了 textcircled 命令用以给字符加圈 但效果却不怎么好 实际上 加圈并不是一个平凡的变换 它会涉及到圈内字符形状的微调 而这是几乎无法在 TEX 宏层面解决的 因此 要得到比较好的效果 最好能使用预先设计
  • iwebsec靶场 文件包含漏洞通关笔记9-file://伪协议利用

    目录 前言 1 file协议 2 利用条件 1 file 用于访问本地文件系统 2 file 必须是绝对路径 第09关 file 伪协议利用 1 打开靶场 2 源码分析 3 获取 etc passwd渗透 前言 1 file协议 file协
  • QCQI学习笔记(1)

    Chapter I II overview of the quantum information probabilistic model qubit tensor product dirac notation Chapter III Sup
  • electron-上传文件,下载csv txt xlsx

    electron 主进程 渲染进程 在vue中调用接口 相互通信 csv txt 上传csv文件 将csv文件读取内容 iconv lite 解决读取内容乱码 xlsx 上传xlsx文件 xlsx文件内容读取 下载xslx文件 简单无样式的
  • 虚析构函数

    自动调用基类部分的析构函数对基类的设计有重要影响 删除指向动态分配对象的指针时 需要运行析构函数 在释放对象的内存之前清除对象 处理继承层次中的对象时 指针的静态类型可能与被删除对象的动态类型不同 可能会删除 实际指向派生类对象的基类类型指