C++语言基础、语言特性、数据结构、操作系统知识甚至是一些内核相关的知识、网络相关知识、数据库操作、多线程多进程数据同步互斥、内存相关知识等等。
1.C中的malloc 和C++中的new 有什么区别
malloc 和new 有以下不同:
(1)new 、delete 是操作符,可以重载,只能在C++ 中使用。
(2 )malloc、free 是函数,可以覆盖,C、C++ 中都可以使用。
(3 )new 可以调用对象的构造函数,对应的delete 调用相应的析构函数。
(4 )malloc 仅仅分配内存,free 仅仅回收内存,并不执行构造和析构函数
(5)new 、delete 返回的是某种数据类型指针,malloc、free 返回的是void 指针。
注意:malloc 申请的内存空间要用free 释放,而new 申请的内存空间要用delete 释放,不要混用。
因为两者实现的机理不同。
2…程序什么时候应该使用线程,什么时候单线程效率高。
1 耗时的操作使用线程,提高应用程序响应
2 并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求。
3 多CPU系统中,使用线程提高CPU利用率
4 改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。 其他情况都使用单线程。
3.类相关的题目
为什么要进行封装?
什么是多态,多态是怎么实现的?多态的应用场景?
虚函数表是属于类的还是属于成员的?虚指针呢?
虚函数,纯虚函数?什么时候使用虚函数,什么时候使用纯虚函数?有了虚函数为什么还要用纯虚函数,可以用虚函数替代纯虚函数吗?
类的构造函数可以定义为虚函数吗?析构函数呢?
基类的析构函数为什么通常需要定义为虚函数?如果不定义为虚函数会有什么问题?什么场景下会产生这种问题?
定义拷贝构造函数的时候参数有什么要求?为什么要将参数定义为引用,如果不定义为引用会产生什么问题?
什么是深拷贝?怎么实现深拷贝?
构造函数的成员初始化列表的使用场景?什么时候必须使用初始化列表?
4.说一说C与C++的内存分配方式?
1从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在,如全局变量,static变量。
2在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
3从堆上分配(动态内存分配)程序在运行的时候用malloc或new申请任意多少的内存,程序员负责在何时用free或delete释放内存。动态内存的生存期自己决定,使用非常灵活。
文字版题目:用铁片在塑料上划过,可以见到塑料表面产生了划痕。这是因为( )。A 铁片比塑料重 B 铁片的硬度比塑料高 C 铁是一种金属 D 铁片的密度比塑料高在以下几种反应中,与其他选项不属于同一类的是( )。A 物体在日照下变热 B 灯泡通电发光 C 冰在室温下融化 D 铁栏杆生锈阿基米德的名言“给我一个支点,我就能撬动地球”是以下选项中( )的体现。A 牛顿三定律 B 近大远小 C 杠杆原理 D 小孔成像以下生活中常见的物品中,( )
1. 交叉编译设置:make ARCH=arm CROSS_COMPILE=arm-linux-注:也可以直接修改顶层MakefileARCH ?=armCROSS_COMPILE?= arm-linux-2. 加载默认设置:make mini2440_defconfig① make mini2440_config: 将arch/arm/configs目录下的mini2440_def...
机器学习这个词是让人疑惑的,首先它是英文名称Machine Learning(简称ML)的直译,在计算界Machine一般指计算机。这个名字使用了拟人的手法,说明了这门技术是让机器“学习”的技术。机器学习是一种让计算机利用数据而不是指令来进行各种工作的方法。在这里还是要推荐下我自己建的大数据学习交流群:957205962,群里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎...
此文用来记录使用wkhtmltopdf.exe在C#代码中将html转换为PDF的过程:1,在http://wkhtmltopdf.org/downloads.html 下载wkhtmltopdf.exe的安装文件,分为32位和64为,可以根据自己系统类型选择2,安装wkhtmltopdf.exe,成功安装3,在到安装好的bin文件中,找到wkhtmltopdf.exe文件,...
spotify使用教程Spotify is one of our favorite music streaming services and one thing you might not know is that to use it, you don’t need to download an app: you can use it straight from your web browser....
元启发式优化已成为解决多个领域复杂优化问题的主要替代方法。因此,从业者和研究人员一直广泛关注那些主要基于自然现象的元启发式算法。然而,当这些算法被实现时,没有足够的书籍以友好的方式处理理论和实验问题,因此本文呈现了一种新颖的结构,其中包括对最重要的元启发式优化算法的完整描述以及一种新的元启发式优化,称为地震优化。还包含几个实践练习,并集成了一个 MATLAB 工具箱和一个 LabVIEW 工具包,作为补充材料。这些工具包允许读者非常快速地从模拟环境转移到实验环境。内容优化的基本概念优化的软件基础基本
很多时候我们在工作或者学习的过程中总是想打开源码,但是总是打开.class文件;1:我们可以用maven来下载第三方的开源的源码,直接点击dewnload sources通过manven下载源码2:点击dewnload sources提示下载失败3:在项目根目录下的执行命令mvn dependency:resolve -Dclassifier=sources4:一般执行命令后自动下载了源码,如果打开还是.calss文件,那么进行绑定5:选择对应的源码,一般是xxxxx.sou
1.新建工程该项目是通过阅读大恒官方C++项目的代码进行移植的一个Qt简单demo,废话不多说直接上步骤。至此一个Qt项目创建完毕。2.文件及属性配置因为需要使用大恒官方的API,那么就需要使用官方提供的库文件和头文件。可以通过该步骤添加到项目中。(方法不唯一,这里为了移植到其他电脑才这样做的)2.1文件拷贝2.2VS项目属性配置2.2.1包含目录和库目录添加2.2.2附加依赖项添加...
1、VMware Fusion 虚拟机无法打开报错提示“物理内存不足,无法使用配置的设置开启虚拟机”我的VMware Fusion 版本是8.0,度娘告诉我要升级到12才行。可以参考这位大佬的解决方法,亲测有效。*升级MacOS Big Sur之后vware虚拟机打不开解决方案*2、VMaware Fusion 虚拟机中鼠标失效解决了问题1后,虚拟机可以正常打开了,进入系统后发现键盘可用,但鼠标失效分析过程:键盘和鼠标在MacOS中都正常,怀疑是vmware tools的问题,重装了vmw
为最大限度地保证库卡机器人正常运行,库卡KUKA机器人保养普遍需要在运行10000小时后进行一次,特别是针对在恶劣工况与长时间在负载极限或运行极限下工作的库卡机器人,则需要每年进行一次全面库卡机器人保养。库卡机器人本体保养项目。 KUKA机器人保养,首先检查KUKA机械手状态与机器人...
多线程背景知识介绍 1 多线程基础概念 **进程与线程 ** 进程进程程序(任务)的执行过程(动态性),持有资源(共享内存,共享文件)和线程,是资源和线程的载体。 线程进程的最小执行单元,比如将一个班级视为进程,则班里的每一个学生就是线程,所有学生共享黑板,教师等。 线程的交...
同一个数据库,同一次故障,两个人出据的数据库故障报告深度截然不同,很难受。我要是早看到就不会多次发生这个问题了,不完全一致但解决排查思路是一致的,关键字:心跳网络、oracle rac 、网络异常宕机、packet reassembles failed 、UDP error转载 自 https://www.anbob.com/archives/2851.html 转载 自 ...