C++面经个人背诵版

一、基础部分

1、指针和引用的区别

① 初始化
② 是否开辟内存空间
③ Sizeof
④ 加1操作
⑤ 多级指针
⑥ 引用的底层是指针实现的
⑦ 类型检查,防止野指针
⑧ 直接访问,间接访问
⑨ 传引用,传指针

2、形参和实参的区别

① 形参,分配内存空间,函数内部有效
② 实参必须要有确定值
③ 数据传递,是否会改变
④ 在类型、数量、顺序上一致
⑤ 形参实参不是指针类型时的情况
补充:传值、传引用、传指针

3、const用法

①阻止变量被改变,初始化,注意一下类和普通变量的初始化
②和指针的三种搭配
③ 和成员函数的三种搭配
④ 常函数能访问非常对象/常对象的什么
⑤ 非常函数能访问非常对象/常对象的什么
⑥ Const_cast
⑦ 只有指针传递和引用传递可以用是否加const来重载

4、extern

①修饰变量
②修饰函数
③指示C或者C++函数的调用规范

5、深拷贝和浅拷贝

区别:有无开辟新的内存空间

6、类成员的初始化方式,哪一种要快一些

①列表初始化
②赋值初始化

(new)必须要使用成员列表初始化的情况,四个
在初始化列表中,成员变量的初始化顺序是其在类中声明顺序,而非列表中的顺序

7、static用法

8、静态变量什么时候初始化

9、C语言中的struct和C++中的struct的区别

1、用户自定义类型和抽象数据类型,C++中的支持函数
2、一个没有权限的设置,一个有
3、C中的在声明结构标记的时候,需要加上struct,才能做结构类型名

、构造函数、析构函数、虚函数

构造函数:

特点:和类同名,没有返回值,可以重载,必须是public,不能声明成const
作用:实例化对象->分配内存->调用构造函数->起到初始化的作用
什么时候起作用:对象被定义的时候
分类:
1、默认构造函数;(不接受任何参数)
2、拷贝构造函数
3、拷贝赋值构造函数;(类的构造可以用重载赋值运算符来实现,即"=")
4、移动构造函数;**左值右值**
5、
构造函数的分类

析构函数:

特点:
作用:
如何起作用:
什么时候会析构:1、生命周期结束2、delete3、成员类对象

构造函数和析构函数的执行顺序:

基类,成员类对象,派生类

虚函数:

静态绑定:
动态绑定:

纯虚函数:

抽象类:

面向对象三大特性

封装:

定义:隐藏对象的属性和实现细节,仅对外公开接口,控制程序中属性的读和修改的访问级别
作用:对外提供接口(公有的函数可以在类外被访问),对内提供数据
优点:

继承
多态

重载
重写
重定义

类与类的三种关系,特性以及优缺点

组合
使用
继承

二、STL

vector
list
deuep
map

三、内存

四、新特性

左值右值

五、手写代码

手写C实现C++中的继承和多态
手写单例模式(线程安全版本)
手写智能指针
手写模板函数

你可能感兴趣的:(面试,c++)