C++基础知识3
1、为什么构造函数不能是虚构造?
虚函数对应一个虚表vtale,这个表的地址是存储在对象的内存空间的。如果将构造函数设置为虚函数,就需要到虚表中调用,但这时候对象没有实例化,没有内存分配,虚表就不存在,故构造函数不能为虚函数。
2、重载和重写的区别?
(1)、重载指得是同一 水平区域内,例如类内有多个同名函数,这些函数的参数列表不同,重载是在编译时绑定对象的,是静态多态。
(2)、重写指得是垂直区域,例如父子类,父类将函数定义为虚函数,子类重新定义函数体,父子类的函数名、参数列表是同样的。重写是在运行时绑定对象的,是动态多态。
3、公有继承、私有继承、受保护继承?
(1)、公有继承,派生类对象可以访问基类中的公有成员,派生类的成员函数可以访问基类中的共有和受保护成员;
(2)、私有继承,基类的成员只能被直接派生类的成员访问,无法再往下继承;
(3)、受保护继承,基类的成员只能被直接派生类的成员访问,无法再往下继承。
4、如何阻止一个类被实例化?
(1)、将类定义为抽象类或则将构造函数私有化;
(2)、不允许类外部创建类对象,只能在类内部创建对象。
5、堆和栈的区别?
(1)、申请方式不同。栈上的内存是操作系统自动分配和释放的,堆上的内存是由程序员申请和释放的,申请时需要指定内存大小;
(2)、栈的内存地址是从高到低扩展的,内存区域是连续的,大小有限;堆的内存地址是从低到高扩展的,是不连续的内存区域,空间相对大且灵活;
(3)、栈由系统分配和释放速度快,堆由程序员控制,一般较慢,且易产生碎片。
6、C++函数中值传递有哪几种?
引用传递、值传递、指针传递
7、字符数组和字符串的差异?
字符串会在末尾自动添加‘\0’,比字符数组多一个字符长度。
8、类使用static成员的优点,如何访问?
(1)、static成员的名字是在类的作用域中,因此可以避免与其他类的成员或全局对象名字冲突;
(2)、可以实施封装。static成员可以是私有成员,而全局对象不可以;
(3)、static成员是与特定类关联的,可清晰地显示程序员地意图;
(4)、static数据成员必须在类定义体外部定义;
(5)、static成员不是通过类构造函数进行初始化,也不能在类地声明中初始化,而是应该在定义时进行初始化。
9、如何引用一个已经定义过地全局变量?
可以引用头文件的方式,也可以用extern关键字。如果用引用头文件的方式来引用某个在头文件中声明的全局变量,假定你将那个变量写错了,那么在编译期间会报错;如果用extern方式引用时,如果将变量写错了,编译期不会报错,而是在连接时报错。
10 何为友元?
(1)、有些私有属性也想让类外特殊的一些函数或者类访问,就用到了友员;
(2)、友元函数、友员类;
(3)、友员不是类的一部分;
(4)、友员不受类中访问级别的限制;
(5)、友员关系不能被继承,友员关系是单向的,不具交换性。
相关文章:
C++基础知识3
1、为什么构造函数不能是虚构造? 虚函数对应一个虚表vtale,这个表的地址是存储在对象的内存空间的。如果将构造函数设置为虚函数,就需要到虚表中调用,但这时候对象没有实例化,没有内存分配,虚表就不存在&am…...
【配置vscode编写python代码并输出到外部控制台】
配置vscode编写python代码并输出到外部控制台 1、扩展中添加python插件 2、打开一个文件夹,在里面新建一个.py文件,粘贴print(‘你好啊!’)并运行 运行结果如下: 3、点击调试点击如下图 生成launch.json,将console后面改成exte…...
RK3588开发笔记-MIPI-CSI接口视频解码芯片XS9922B调试
目录 前言 一、RK3588 MIPI接口介绍 二、xs9922B视频解码芯片介绍 三、原理图连接...
DVWA -xss
什么是XSS 跨站点脚本(Cross Site Scripting,XSS)是指客户端代码注入攻击,攻击者可以在合法网站或Web应用程序中执行恶意脚本。当wb应用程序在其生成的输出中使用未经验证或未编码的用户输入时,就会发生XSS。 跨站脚本攻击,XSS(Cross Site S…...
C语言编程实现只有一个未知数的两个多项式合并的程序
背景: 直接看题目把!就是C语言写两个多项式多项式合并 题目要求: 1. 题目: 编程实现只有一个未知数的两个多项式合并的程序。如: 3x^26x7 和 5x^2-2x9合并结果为8x^24x16。 2. 设计要求 (1)…...
C# .net创建一个MVC框架工程
二、C# .net创建一个MVC框架工程 1.步骤 首先打开VS ,然后点击创建新项目 在三个选项框中输入我们需要的项目条件 最后一步创建完毕 创建会在资源解决方案生成如图:...
Deep learning of free boundary and Stefan problems论文阅读复现
Deep learning of free boundary and Stefan problems论文阅读复现 摘要1. 一维一相Stefan问题1.1 Direct Stefan problem1.2 Inverse Type I1.3 Inverse Type II 2. 一维二相Stefan问题2.1 Direct Stefan problem2.2 Inverse Type I2.3 Inverse Type II 3. 二维一相Stefan问题…...
LeetCode 1277. 统计全为 1 的正方形子矩阵【动态规划】1613
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...
测试部门来了个00后卷王之王,老油条感叹真干不过,但是...
都说00后躺平了,但是有一说一,该卷的还是卷。 这不,前段时间我们公司来了个00后,工作都没两年,跳槽到我们公司起薪18K,都快接近我了。后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了…...
360 G800行车记录仪,不使用降压线如何开机,8芯插头的定义。
G800记录仪的插头是这样的,图中标出了线的颜色。其中红色为常电V,黑色为GND负极,黄色为ACC受车是否启动控制。 这个记录仪原装的电源线没有降压功能,所以这里的V是12V。 记录仪内部有电源板,负责将12V降压为5V。 如果…...
vue2踩坑之项目:Swiper轮播图使用
首先安装swiper插件 npm i swiper5 安装出现错误:npm ERR npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: vue/eslint-config-standard6.1.0 npm ERR! Found: eslint-plugin-vue8.7.1 npm ERR! node_modules/esl…...
python经典百题之分桃子
题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只 猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了 一个,它同样把多的一个扔入海中…...
vscode ssh linux C++ 程序调试
vscode调试c++程序相比vs2022要复杂很多,vs2022可以"一键运行调试",vscode则需要自己配置。 vscode调试程序时,会在当前工作目录产生.vscode 目录, 该目录有两个重要文件launch.json和tasks.json, 下面介绍两种调试方法: 手动调试和自动调试。 手动调试 不管…...
VUE和Angular有哪些区别?
Vue.js和Angular是两个流行的前端JavaScript框架,它们有一些明显的区别,包括以下几个方面: 1、语言和工具链的选择: Vue.js使用HTML、JavaScript和CSS来创建组件,使得它更容易学习,因为它使用了常见的Web…...
云原生边缘计算KubeEdge安装配置(二)
1. K8S集群部署,可以参考如下博客 请安装k8s集群,centos安装k8s集群 请安装k8s集群,ubuntu安装k8s集群 请安装kubeedge cloudcore centos安装K8S 2.安装kubEedge 2.1 编辑kube-proxy使用ipvs代理 kubectl edit configmaps kube-proxy -…...
SQL多表设计--一对多(外键)
-- 完成部门和员工的-- 选择当前db03 这个数据库use db03;-- 查看当前选中的数据库select database();-- 创建员工表create table tb_emp (id int unsigned primary key auto_increment comment ID,username varchar(20) not null unique comment 用户名,password varchar(32)…...
Stm32_标准库_9_TIM
频率(HZ)是频率的基本单位1HZ是1s的倒数 STM32F103C8T6一般情况给定时器的内部时钟都是72MHz(系统主频率) TIM基本构成 计数器、预分频器、自动化重装 // 都是16位其中计数器、自动化重装,都是16位换算成10进制范围为[0, 655536] 时间 1 /…...
283. 移动零
283. 移动零 原题 /** 左指针左边均为非零数; 右指针左边直到左指针处均为零。*/ class Solution {public void moveZeroes(int[] nums) {int left 0;int right 0;while(right<nums.length){if(nums[right]!0){swap(nums,left,right);left;}right;}}public v…...
用 HTTP 提交数据,基本就这 5 种方式
网页开发中,向服务端提交数据是一个基本功能,工作中会大量用 xhr/fetch 的 api 或者 axios 这种封装了一层的库来做。 可能大家都写过很多 http/https 相关的代码,但是又没有梳理下它们有哪几种呢? 其实通过 http/https 向服务端…...
基于matlab统计Excel文件一列数据中每个数字出现的频次和频率
一、需求描述 如上表所示,在excel文件中,有一列数,统计出该列数中,每个数出现的次数和频率。最后,将统计结果输出到新的excel文件中。 二、程序讲解 第一步:选择excel文件; [Filename, Pathn…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
