c++面试技巧-基础篇3
1.面试官:什么是函数的重载?
应聘者:函数的重载就是允许使用同一个函数名来定义多个函数,但是这些函数的参数个数和类型不同。
2.面试官:如何引用一个已经定义过的全局变量?
应聘者:可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变量,假定你将那个变量写错了,那么在编译期间会报错,如果用extern方式引用,假定犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。
3.面试官:简述递归算法的特点。
应聘者:在实际编程中,有许多定义或者问题本身具有递归性质,所以顺其自然就用递归来解决,这样不仅代码少,而且结构清晰。递归算法的特点:所谓递归就是把一个大型的复杂问题层层地转化为一个与原问题相似的较小规模的问题,再逐步求解小问题,再返回得到较大问题的解,由于递归只需要少量的步骤就可以描述解题过程中所需要的多次重复计划,所以大大减少了代码量,递归算法的关键在于找出递归方程和递归终止条件。
4.面试官:“.”运算符和“->”运算符都能访问成员,但是哪种方法好?
应聘者:如果有一个指向对象的指针,则使用“->”运算符最合适;如果是实例化一个对象,并将其储存到一个局部变量中,则使用“.”运算符最为合适。
5.面试官:友元的作用和优缺点?
应聘者:友元提供了不同类的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制。通过友元,一个不同函数或另一个类中的成员函数可以访问类中的私有成员和保护成员。优点:(1)可以灵活地实现需要访问若干类的私有或受保护的成员才能完成的任务。
(2)便于与其他不支持类概念的语言进行混合编程。
(3)通过使用友元函数重载可以更自然地使用C++语言的I/O流库。
缺点:一个类将对其非公有成员的访问权限授予其他函数或者类,会破坏该类的封装性,降低该类的可靠性和可维护性。
6.面试官:访问命名空间成员有哪几种方法?
应聘者:在引用命名空间成员时,要用命名空间名和作用域限定符对命名空间成员进行限定,以区别不同的命名空间中的同名标识符。即:
命名空间名::命名空间成员名;
这种方法是有效的,能保证所引用的实体有唯一的名字。但是如果命名空间名字比较长,尤其在有命名空间嵌套的情况下为引用一个实体,需要写很长的名字。在一个程序中可能要多次引用命名空间成员,就会感到很不方便。1. 使用命名空间别名引用成员为命名空间起一个别名,用来代替较长的命名空间名。
可以用一个较短而易记的别名代替它。例如:
namespace TV= Television; //别名与原名Television等价
2. 使用using命名空间成员名using后面的命名空间成员名必须是由命名空间限定的名字。例如:
using std::cout;
该语句表示,在using语句所在的作用域中会用到命名空间std中的成员cout,在本作用域中如果使用该命名空间成员时,不必再用命名空间限定。例如在用using声明后,在其后程序中出现cout就是隐含的值std::cout。
7.面试官:作用域运算符“::”都有哪些用法?
应聘者:C++作用域运算符主要有两种应用方式。
1. 类与类的成员之间声明一个类A,类A里声明了一个成员函数“void fun();”,但是没有在类的声明里给出函数fun()的定义,那么在类外定义函数fun()时,就要写成“void A::fun()”,表示这个fun()函数是类A的成员函数。
2. 作用域作用域一般分为全局作用域、局部作用域和语句作用域。作用域的范围越小优先级越高。如果希望在局部变量的作用域内使用同名的全局变量,就可以在该变量前面加上“::”。
3. 命名空间C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。在没有写“using namespace std;”这句代码时,程序里都是使用std::cout而不是cout。
8.面试官:C++有哪几种继承方式,各自有什么特点?
应聘者:继承方式主要有三种:public、private和protected。在缺省条件下是private继承,三种方式中,public继承用得最多,不同的继承方式决定了子类中从基类继承过来的成员的访问属性。(1)public继承:基类的public、protected成员在子类中访问属性不变,子类新增的成员函数可以直接访问,对于基类的private成员依然是基类的私有,子类无法直接进行访问。
(2)private继承:基类的public、protected成员转变为子类的private成员,子类新增的成员函数可以进行访问,对于基类的private成员依然是基类的私有,子类无法直接进行访问。
(3)protected继承:基类的public、protected成员转变为子类的protected成员,子类新增的成员函数可以进行访问,对于基类的private成员依然是基类的私有,子类无法直接进行访问。
private继承和protected继承的区别是private继承的子类如果继续被继承,那么这些从其分类继承得到的数据将不会被其子类继承,而protected则是可以的。
相关文章:
c++面试技巧-基础篇3
1.面试官:什么是函数的重载? 应聘者:函数的重载就是允许使用同一个函数名来定义多个函数,但是这些函数的参数个数和类型不同。 2.面试官:如何引用一个已经定义过的全局变量? 应聘者:可以用引…...
MySQL OCP888题解044-从服务器上导入mysql模式数据后的权限问题
文章目录1、原题1.1、英文原题1.2、中文翻译1.3、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3.1、知识点1:mysqldump的--flush-privileges选项3.2、知识点2:mysqldump的--all-databases选项3.3、知识点3:mysqldump默认不转储的内容…...
实战小项目之视频监控(1-2)
实战小项目之视频监控(1-2) Nginx 移植 前面也给大家提到了,我们可以使用 Nginx 来搭建 RTMP 流媒体服务器,譬如你可以在一台公网 IP 主 机上搭建流媒体服务器,当然,笔者并没有这个条件;这里我…...
人工智能基础--AI作业1-ML基础
1.监督学习和无监督学习都是机器学习中常用的方法。监督学习是一种机器学习方法,其中机器学习算法根据给定的输入数据和其对应的输出标签进行训练,以学习如何预测新的输入数据的输出标签。简单来说,监督学习就是通过已知的数据进行学习&#…...
关于JS中this对象指向问题总结
一、前言 关于JS中this对象指向问题,相信做过项目的小伙伴多多少少都会遇到过,明明感觉代码写的没问题,可是运行的时候,就会报错,比如报错 xxx is not a function。 我最近也遇到了,百度学习了不少前辈对于…...
Codeforces Round 855 (Div. 3) A-E2
比赛链接:Dashboard - Codeforces Round 855 (Div. 3) - Codeforces A:模拟 题意:给定一个字符串,问这个字符串是不是猫叫。定义是猫叫得字符串: 1:必须由大写或小写得M(m),E&…...
Spark Yarn 运行环境搭建
文章目录Spark Yarn 运行环境搭建1、解压缩文件2、修改配置环境文件3、配置历史服务器Spark Yarn 运行环境搭建 1、解压缩文件 将spark3.2.3的压缩包上传到 linux /opt/software 目录下 输入命令: tar -zxvf spark-3.2.3-bin-hadoop3.2-scala2.13.tgz -C /opt/ 解…...
SpringMVC 页面跳转指南:转发和重定向的实现与比较
SpringMVC 是一款非常流行的 Java Web 框架,它提供了丰富的特性和功能,使得开发者可以轻松地开发 Web 应用程序。其中,转发和重定向是 SpringMVC 中非常常见的两个操作,它们可以用于控制请求的流转和页面的跳转。本文将深入探讨 S…...
ModStartCMS v5.9.0 后台浅色模式,系统样式升级
ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议,免费且不限制商业使用。 功能特性 丰富的模块市…...
2020蓝桥杯真题反倍数 C语言/C++
题目描述 给定三个整数 a,b,c,如果一个整数既不是 a 的整数倍也不是 b 的整数倍还不是 c 的整数倍,则这个数称为反倍数。 请问在 1 至 n 中有多少个反倍数。 输入描述 输入的第一行包含一个整数 n。 第二行包含三个整数a,b,c,相邻两个数之…...
PTA:L1-025 正整数A+B、L1-026 I Love GPLT、L1-027 出租(C++)
目录 L1-025 正整数AB 问题描述: 实现代码: L1-026 I Love GPLT 问题描述: 实现代码: L1-027 出租 问题描述: 实现代码: 原理思路: 出租那道题有点意思哈 L1-025 正整数AB 问题描述…...
状态机的Go语言实现版本
一、状态机 1. 定义 有限状态机(Finite-state machine, FSM),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。 2. 组成要素 现态(src state):事务当前所处的状…...
第2章 线程安全与共享资源竞争
第2章 线程安全与共享资源竞争 2.1 synchronized同步介绍 synchronized要解决的是共享资源冲突的问题。当共享资源被任务使用时,要对资源提前加锁。所有任务都采用抢占模式,即某个任务会抢先对共享资源加上第一把锁。如果这是一个排他锁,…...
77. writerows写入多行
文章目录1. 目标任务2. 准备工作3. writerow单行写入4. writerows多行写入5. a以追加的模式写入值6. 总结1. 目标任务 新建【各班级成绩】文件夹; 在该文件夹下新建一个【1班成绩单.csv】文件; 在该文件中写入下面的内容: 成绩 姓名 刘一…...
STM32MP157-Linux输入设备应用编程-多点触摸屏编程
文章目录前言多点触摸屏tslib库简介tslib库移植tslib库函数使用打开触摸屏设备配置触摸屏设备打开并配置触摸屏设备读取触摸屏设备多点触摸屏程序编写触点数据结构体定义事件定义计算触点数量判断单击、双击判断长按、移动判断放大、缩小外部调用代码流程图(草图&am…...
mybatis-plus的一般实现过程(超详细)
MyBatis-Plus 是 MyBatis 的增强工具,在 MyBatis 的基础上提供了许多实用的功能,如分页查询、条件构造器、自动填充等。下面是 MyBatis-Plus 的完整代码实现流程: ①、引入 MyBatis-Plus 依赖 在 Maven 中,可以通过以下方式引入 …...
Spark(5):RDD概述
目录 0. 相关文章链接 1. 什么是RDD 2. RDD核心属性 3. 执行原理 0. 相关文章链接 Spark文章汇总 1. 什么是RDD RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据处理模型。代码中是一个抽象类&#x…...
面向对象 - 继承
Hello , 各位同学朋友大家好啊, 今天给大家分享的技术呢, 是面向对象三大特征之一的继承,我们今天主要按照以下几个点, 展开继承的讲解。目录 :* 继承的介绍* 继承的好处和弊端* 继承中成员访问特点 - 成员变量* 继承中成员访问特点 - 成员方法* 方法重写* 继承中成…...
计算机网络的166个概念你知道几个 第十二部分
计算机网络安全安全通信的四大要素:机密性、保温完整性、端点鉴别和运行安全性。机密性:报文需要在一定程度上进行加密,用来防止窃听者截取报文。报文完整性:在报文传输过程中,需要确保报文的内容不会发生改变。端点鉴…...
【RabbitMQ】RabbitMQ各版本的兼容性与技术支持时限
今天在研究RabbitMQ的监控时,发现这个消息队列软件的版本真的很令人崩溃,版本众多,且组件之间还存在版本的兼容性,此外各个组件还对操作系统存在兼容性关系。为了帮大家节省一些查阅官方文档的时间,我把官方文档里面涉…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
土建施工员考试:建筑施工技术重点知识有哪些?
《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目,核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容,附学习方向和应试技巧: 一、施工组织与进度管理 核心目标: 规…...
Linux安全加固:从攻防视角构建系统免疫
Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...
Vue 3 + WebSocket 实战:公司通知实时推送功能详解
📢 Vue 3 WebSocket 实战:公司通知实时推送功能详解 📌 收藏 点赞 关注,项目中要用到推送功能时就不怕找不到了! 实时通知是企业系统中常见的功能,比如:管理员发布通知后,所有用户…...
Python常用模块:time、os、shutil与flask初探
一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...
