C++面试中可能考察的基础知识(1)
1 C++中允许函数的嵌套调用,但不允许函数的嵌套定义
2 构建派生类对象时,先调用基类的构造函数,在调用成员对象的构造函数,最后调用派生类构造函数。
3 volatile关键字
volatile提醒编译器其后面定义的变量随时可能发生改变,因此编译后的程序每次需要存储或者读取这个变量的时候,都直接从变量的地址读取数据。如果没有这个关键字,则编译器可能会优化该变量的存取,即从寄存器中读取,如果这个变量由别的程序更新的话,将出现不一致的现象。
4 C++中不能重载的运算符 . .* ?: :: sizeof
只能使用成员函数重载的运算符有:= () [] -> new delete
单目运算符最好重载为成员函数
对于复合的赋值运算符如+=, -=, *=, /=, %=, &=, |=, !=, ~=, <<=, >>=建议重载为成员函数
对于其它运算符,建议重载为友元函数
5 reinterpret_cast:将一种类型的指针转换为另一种类型的指针或整数,以及其相反的行为,类似于C的强制转换,不做任何类型检测,操作的结果是二进制为拷贝
static_cast:允许执行隐式类型转换以及相反的转换操作
dynamic_cast:用于对象的指针或引用,当用于多态类型转换时,允许隐式转换及相反的过程。与static_cast的不同之处,在相反的转换过程中,dynamic_cast会检擦操作的有效性,如果返回的不是被请求的有效完整对象,则返回null,反之,返回这个有效的对象,如果引用返回无效时则会抛出bad_cast的异常。另外,static_cast不能转换有多态的继承和虚继承和非public继承,但dynamic_cast能转换表现为多态的基础和非public继承。还有的差别就是运行时检测,dynamic会花费更多时间。
const_cast:用于操作被转换对象的const熟悉,设置或移除。
6 静态函数和静态变量属于类本身,不与类对象绑定,因此不能使用this指针;在类定义时,不能对对象直接进行初始化;一般成员变量需要在类内进行初始化;静态成员变量必须在类外初始化,静态成员常量在类中初始化。
7 Java不完全算编译型语言,其编译的字节码文件运行时是解释执行的。java和C++的类也不都是静态绑定的,比如C++的虚函数,Java的父类引用子类对象的情况。Java数组也会溢出。
C++面试中可能考察的基础知识(1)的更多相关文章
- Java中实现异常处理的基础知识
Java中实现异常处理的基础知识 异常 (Exception):发生于程序执行期间,表明出现了一个非法的运行状况.许多JDK中的方法在检测到非法情况时,都会抛出一个异常对象. 例如:数组越界和被0除. ...
- 守护线程在logback中的使用 - 论基础知识的重要性
守护线程在logback中的使用 先说问题,在java应用中,logback的异步Appender是怎么在主线程结束后,停下来的? 复盘 我在一个logback的测试用例中,写了这样的代码和logba ...
- 《吊打面试官》系列-Redis基础知识
前言Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难.作为一个在互联网公司面一次拿一次offer的面霸(请允许我使用一下 ...
- [不得不知道系列]Java线程面试你不得不知道的基础知识一
Java内存管理面试指南一 Java基础面试指南一 Java基础面试指南二 Java基础面试指南三 Java基础面试指南四 Java线程面试指南一 Java线程面试指南二 Redis面试指南一 Kaf ...
- react组件在项目中的应用(基础知识)
上图我是定义了5个模块,全部都渲染在一个组件里面.可以先看看我的代码结构 我将Hello文件夹下的index.jsx文件作为父组件,最后渲染在根组件中. 那我们怎么输出这个Hello组件呢?要达到上图 ...
- Kafka面试你不得不知道的基础知识
Java内存管理面试指南一 Java基础面试指南一 Java基础面试指南二 Java基础面试指南三 Java基础面试指南四 Java线程面试指南一 Java线程面试指南二 Redis面试指南一 Kaf ...
- 【Unity】6.1 Unity中的C#脚本基础知识
分类:Unity.C#.VS2015 创建日期:2016-04-16 一.简介 1.常用的C#数据类型 这里简单介绍用Unity开发游戏时,最常用的一些数据类型. (1)基本类型 int.float. ...
- 第11天:JS中变量、字符串基础知识
一.js简介用来制作页面交互效果,提高用户体验. js页面效果:轮播图.选项卡.地图.表单验证javascript是弱变量类型的语言,变量只需要用var来声明.而java要根据变 量类型来声明, in ...
- C++程序员面试题目总结(涉及C++基础、多线程多进程、网络编程、数据结构与算法)
说明:C++程序员面试题目总结(涉及C++基础知识.多线程多进程.TCP/IP网络编程.Linux操作.数据结构与算法) 内容来自作者看过的帖子或者看过的文章,个人整理自互联网,如有侵权,请联系作者 ...
随机推荐
- CentOS6.5 重启网络报错:Bringing up interface eth0: Error: Connection activation failed: Device not managed by NetworkManager or unavailable
CentOS6.5 重启网络报错: Bringing up interface eth0: Error: Connection activation failed: Device not manage ...
- 【Linux】- 对find,xargs,grep和管道的一些理解
问题 相信大家都知道在目录中搜索含有固定字符串文件的命令: find . -name '*.py' |xargs grep test 刚开始的时候,我不熟悉xargs命令,所以直接使用的命令是: fi ...
- 修改表中的enum字段
alter table 表名 modify 字段名 enum('system','audit','account','secadmin') DEFAULT NULL;
- 【linux】linux的数据流重定向
首先说一下什么是数据流重定向,所谓数据流重定向简单来说就是一个过程,这个过程捕捉一个文件,或者命令,程序,脚本,甚至脚本中的代码块(code block)的输出,然后把捕捉到的输出,作为输入发送给另外 ...
- 内存测试——Android Studio中对应进程的Heap
通过Android Studio的Heap查看该程序的目前占用内存大小,多次进出界面,观察内存内存大小的变化.用Heap监测应用进程使用内存情况的步骤如下: 1. 启动Android Studio—& ...
- MVC 中创建简单过滤器
1.新建一个类,继承自 ActionFilterAttribute类,并重写OnActionExecuting()方法 public class LoginFilter:ActionFilterAtt ...
- 第92天:CSS3中颜色和文本属性
一.颜色的表示方式 1. rgba(255,0,0,0.1) rgba是代表Red(红色) Green(绿色) Blue(蓝色)和 Alpha透明度.虽然它有的时候被描述为一个颜色空间 新增了RGB ...
- BZOJ 1923 外星千足虫(bitset优化线性基)
题意:给出m次n个千足虫的足数信息,确定在第几次测试后可以确定每个千足虫的来历. 我们可以观察到每个测试结果具有异或后依然成立的性质,于是实际上我们只需要从头到尾确定有n个线性相关的向量是在哪一个测试 ...
- XML格式化加载的时候提示Content is not allowed in prolog. Nested exception: Content is not allowed in prolog
原因:原本是.xml文件格式的内容,被你用右键,文本编辑,保存,导致格式不认了. 解决方法:下载个notepad+ 工具,用这工具打开,修改,编辑,保存,即可被继续认作xml格式.
- 【CF Gym100228】Graph of Inversions
Portal --> qwq(貌似是CodeForces Gym 100228 (ECNA2003) - I) Description 对于长度为 \(n\) 的序列 \(A\) ,定义其逆序图 ...