对于平时的考试以及找工作的笔试、面试,c/c++是必考点,接下来,就对一些易考易错点进行整理,后续在学习过程中,遇到新的问题会进行补充。
static作用
隐藏,保持变量内容的持久,默认初始化为0x00. 唯一一次初始化
静态存储区:全局变量和static变量。c++中有const,为何还要宏
const表示修饰的内容不能改变。const无法代替宏作为卫哨来防止文件的重复包含。
引用 vs 指针
引用是对象的别名,操作引用就是操作这个对象,必须在创建的时候初始化,不可为NULL,二进制层面引用一般是通过指针实现的。不能再把该引用名作为其他变量名的别名,系统也不给引用分配存储单元。不能建立数组的引用。
内存分配方式
- 静态存储区:全局、static
- 栈:函数执行
- 堆:malloc、 new
new/delete 与 malloc()/free() 的区别
malloc()和free()不在编译器控制权限之内, 不能把构造函数和析构函数的任务强加给他们。
include<a.h>和include "a.h" 有什么区别?
在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”?
C++支持函数重载,C不支持重载,假设某个函数的原型为: void foo(int x, int y);该函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字。C++提供了C连接交换指定符号extern”C”来解决名字匹配问题。
多态性实现?
派生、虚函数
RTTI
RTTI事指运行时类型识别(Run-time type identification)在只有一个指向基类的指针或引用时确定一个对象的准确类型。