2018秋招已经基本结束,博主主要找的是C++有关的开发和人工智能图像识别算法岗位,目前offer有几家国内知名大企业。在即将开启2019年新年前,博主特将有关C++的面试常问知识点归纳一下,仅供大家参考。
文章目录
常量
const和#define的区别
常量可以用上述两者之一定义,区别在于const常量有数据类型,编译器可以进行类型安全检查,宏常量没有数据类型,编译器对宏常量只是进行简单的字符替换,同时在字符替换可能会产生边际效应等错误。
类中的常量
如果某些常量希望只能在类内起作用,宏常量是全局的,没法用define。const也没法用,const修饰的数据成员只在某个对象生存期内是常量,对于整个类是可变的,因为类可以有多个对象,同时还需要注意一点,不能在类声明中初始化const数据成员,const数据成员只能在类构造函数的初始化列表中进行(初始化列表先于构造函数执行)。为了实现类中的常量,应用枚举常量。
引用和指针的比较
函数的参数和返回值的传递方式:值传递、指针传递和引用传递。
引用被创建时必须初始化,指针可以在任何时候被初始化;
不能有NULL引用,引用必须与合法的存储单元关联,指针可以是NULL;
引用一旦被初始化,引用关系将不能改变。
内存管理
常见的内存错误
内存未分配