C++面试常见考点
这两周参加了3家公司的面试,一家是做嵌入式的外企,一家是做智能家居的初创公司,一家是做网络分析的公司。
通过参加面试,越发的觉得语言只是基础,虽然都是计算机领域,但是不同的业务肯能用到的技术不同,所以需要针对自己申请的岗位做一些额外的知识点整理,比如嵌入式的岗位需要准备计算机组成原理等偏底层的知识点;智能家居和网络分析可能就网络知识需要的多一些。但是基础也要准备好,今天是第一次在博客园写博客,从今天开始我要坚持写博客,及时把知识点整理归纳,让知识体系化。
言归正传,下面就记录一下,这几次面试遇到的考点吧!
一、修饰符
1、const,涉及指针的底层const和顶层const
名词顶层const(top-level-const)表示指针本身是个常量,而名词底层const(low-level-const)表示指针所指向的对象是一个常量。
example:
int i = 0;
int *const p1 = &i; // 不能改变p1的值,这是一个顶层const
const int ci = 42; // 不能改变ci的值,这是一个顶层const
const int *p2 = &ci; // 允许改变p2的值,这是一个底层const
PS: 记忆技巧,看const修饰符后面跟的是什么,int *const p1,const后面是p1表示p1是常量;const int *p2,const后面是int表示指针指向的对象是常量。
2、static
staitic修饰的成员是类所有对象所共享的,静态成员是存储在静态存储区的,因此使用sizeof运算符时,类的大小并不包含static成员。
3、派生访问说明符
C++中,一个类可以被另一个类继承,被继承的类称为基类(或父类),继承的类称为派生类(或子类)。通过继承机制,可以使数据仅在有继承关系的类中才可见,安全性得到了保证。
派生访问说明符的目的是控制派生类用户(包括派生类的派生类在内)对于基类成员的访问权限:
派生访问说明符对基类访问权限的影响
行表头->派生访问说明符 列表头->基类访问权限 内容->基类访问权限在相应的派生访问说明符下权限改变public | protected | private | |
public | public | protected | private |
protected | protected | protected | private |
private | X | X | X |
PS:派生访问权限会影响基类成员在派生类中的访问权限,如上表。
二、构造函数和析构函数
1、构造派生类时,各个构造函数和析构函数的调用顺序
构造调用顺序:基类构造函数->派生类成员构造函数->派生类的构造函数。
析构调用顺序:派生类的析构函数->派生类成员的析构函数->基类析构函数。
PS:实际上编译器会把基类和派生类成员的初始化插入派生类构造函数最前面。派生类成员初始化顺序与成员在类中声明次序相关,而与初始化列表无关。
2、拷贝构造函数
涉及到深拷贝时需要自己重写拷贝构造函数,避免指针指向非法空间。
PS:同时,析构函数中也要注意释放空间。
三、内存
1、内存对齐
编译器默认是4字节对齐
sizeof(Data) = 12;
c_a对齐为4字节,s_c对齐为4字节。
----------------------------------分割线---------------------------------
今天就先记到这里,接下来慢慢补充。
严于律己,宽于待人。
C++面试常见考点的更多相关文章
- Python面试常考点之深入浅出链表操作
Python面试常考点之深入浅出链表操作 在Python开发的面试中,我们经常会遇到关于链表操作的问题.链表作为一个非常经典的无序列表结构,也是一个开发工程师必须掌握的数据结构之一.在本文中,我将针对 ...
- LeetCode面试常见100题( TOP 100 Liked Questions)
LeetCode面试常见100题( TOP 100 Liked Questions) 置顶 2018年07月16日 11:25:22 lanyu_01 阅读数 9704更多 分类专栏: 面试编程题真题 ...
- HTML&CSS面试高频考点(二)
HTML&CSS面试高频考点(一) ♥ 6. W3C盒模型与怪异盒模型 标准盒模型(W3C标准) 怪异盒模型(IE标准) 怪异盒模型下盒子的大小=width(content + bord ...
- java异常面试常见题目
在Java核心知识的面试中,你总能碰到关于 处理Exception和Error的面试题.Exception处理是Java应用开发中一个非常重要的方面,也是编写强健而稳定的Java程序的关键,这自然使它 ...
- JavaScript面试核心考点(精华)
引言 Javascript是前端面试的重点,本文重点梳理下 Javascript 中的常考基础知识点,然后就一些容易出现的题目进行解析.限于文章的篇幅,无法将知识点讲解的面面俱到,本文只罗列了一些重难 ...
- Java面试常见知识点总结(三)
21.volatile关键字: 一旦一个共享变量(类的成员变量.类的静态成员变量)被volatile修饰之后,那么就具备了两层语义: (1) 保证了不同线程对这个变量进行操作时的可见性,即一个线程 ...
- Java集合排序(面试必考点之一)
集合是Java面试必考知识点,而集合的排序也是非常重要的,工作中经常用到,那么这个知识点也是必须要掌握的,下面是我曾经面试时被面试官问的问题: 根据API可知,Java集合的工具类Collection ...
- python基础面试常见题
1.为什么学习Python? Python是目前市面上,我个人认为是最简洁.最优雅.最有前途.最全能的编程语言,没有之一. 2.通过什么途径学习的Python? 通过自学,包括网上查看一些视频,购买一 ...
- 大数据测试之ETL测试工具和面试常见的问题及答案
转载自: http://www.51testing.com/html/87/n-3722487.html 概述 商业信息和数据对于任何一个企业而言都是至关重要的.现在很多公司都投入了大量的人力.资金和 ...
随机推荐
- lanmp环境中php版本的升级为7.1
查看php版本的信息 vim ./lib/phps.sh 设置权限 chmod 755 ./lib/phps.sh 下载版本 ./lib/phps.sh 7.1.4 查看版本 php -v ...
- xml的解构与组装
xml的结构 <xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName>< ...
- Merge K Sorted List(含Merge Two Sorted LIst) leetcode java
问题描述: Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complex ...
- Linux命令详解-file
file命令用来识别文件类型,也可用来辨别一些文件的编码格式.它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的. 1.命令格式: file [ -bchikL ...
- spring boot(二)web综合开发
上篇文章介绍了Spring boot初级教程:spring boot(一):入门,方便大家快速入门.了解实践Spring boot特性:本篇文章接着上篇内容继续为大家介绍spring boot的其它特 ...
- mybatis调用存储过程的两种方式
先总结和说明一下注意点: 1.如果传入的某个参数可能为空,必须指定jdbcType 2.当传入map作为参数时,必须指定JavaType 3.如果做动态查询(参数为表名,sql关键词),可以使用${} ...
- Qt 设置窗口居中显示和窗体大小
设置窗口居中显示 方法一:在窗口(QWidget类及派生类)的构造函数中添加如下代码: #include <QDesktopWidget> //....... QDesktopWidget ...
- Vue中 computed 和 methods的区别
涉及到计算部分的时候,计算属性是基于它们的依赖进行缓存的,如果说值不变,那么它就不会去重新执行,只有当值发生了改变,它才会去重新执行一次,其它时候它都是缓存的.而方法则会反复计算处理.二者之间的差距就 ...
- weex npm 报错 cb() never called!
安装环境:windows7 使用npm 安装 出现错误后网上查找并没有解决,在准备放弃的时候试着用cnpm安装了一下,结果安装成功了,感觉应该网络问题,不知原因但完美解决
- Javaconfig形式配置Dubbo多注册中心
多注册中心,一般用不到,但是某些情况下的确能解决不少问题,可以将某些dubbo服务注册到2套dubbo系统中,实现服务在2套系统间的共用. 网上的配置说明很多,但包括dubbo官方说明文档都是以xml ...