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操作.数据结构与算法) 内容来自作者看过的帖子或者看过的文章,个人整理自互联网,如有侵权,请联系作者 ...
随机推荐
- springmvc值传递
1.页面向后台传值 A.HttpServletRequest方式: package com.rong.controller; import javax.annotation.Resource; imp ...
- 操纵Excel文件的 ExcelUtil 类 !
package FileDemo1; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStr ...
- node进程捕捉错误
var childProcess = require('child_process'); var commitMessage = (function() { var spawn = childProc ...
- MySQL 分组排序问题
SQL好久不写了,有些生疏了,一个分组排序问题想了快半天,整理下. 学生表 CREATE TABLE `t_student` ( `id` bigint(20) NOT NULL AUTO_INCRE ...
- mybatis(一)MyBatis Generator
在gradle中使用MyBatis Generator时,build.gradle配置如下: dependencies { mybatisGenerator group: 'org.mybatis.g ...
- 【数据库_Postgresql】sql查询结果添加序号列
ROW_NUMBER () OVER (ORDER BY A .ordernumber ASC) AS 序号
- 在洛谷3369 Treap模板题 中发现的Splay详解
本题的Splay写法(无指针Splay超详细) 前言 首先来讲...终于调出来了55555...调了整整3天..... 看到大部分大佬都是用指针来实现的Splay.小的只是按照Splay的核心思想和原 ...
- Django新手图文教程-转发
转发自:http://www.cnblogs.com/Leo_wl/p/5824541.html 一.Django简介 百度百科:开放源代码的Web应用框架,由Python语言编写...... 重点: ...
- 【BZOJ4889】不勤劳的图书管理员(树套树)
[BZOJ4889]不勤劳的图书管理员(树套树) 题面 又是权限题,烦死了 洛谷真好 题解 分开考虑每一次交换产生的贡献. 假设交换\((x,y)\) 检查\(x\)与\(y\)对于区间\([x+1, ...
- ER-18
ER #18简要题解 就是推出循环矩阵乘积 然后一次操作后得到的c矩阵第一行第i列就是i的情况(b矩阵下标是a矩阵下标的转置) 两个循环矩阵乘积还是循环矩阵 以此推式子,发现c矩阵的第一行可以用a,b ...