C/C++ 知识点总结

近期忙于找工作,整理一些觉得重要的相关考点共享出来,也会补充一些简答。 
     
            
     构造函数,是否可以为虚函数;
     
            
     析构函数,是否需要为虚函数;
     
            
     拷贝构造函数,深拷贝、浅拷贝;
     
            
     堆 & 栈;
     
            
     malloc/free & new/delete;(标准库函数&运算符/是否可以自动调用构造析构函数/是否自动计算空间大小/是否类型安全/返回指针)
     
            
     动态内存的传递;(指向指针的指针/传递引用/通过函数返回值返回拷贝)
     
            
     重载 & 覆写;(编译阶段完成 & 运行阶段完成)
     
            
     关键字sizeof;(变量/联合体/结构体/包含虚函数的类/含虚继承)
     
            
     位运算;
     
            
     inline函数;
     
            
     指针 & 引用; (初始化要求/可修改性/是否可为NULL/合法性检测)
     
            
     指针常量 & 常量指针;
     
            
     this;(类的非静态成员函数才有this指针,可考虑C++成员函数存储方式以及C++mangle)
     
            
     C语言的static/extern/register;
     
            
     const & define;
     
            
     C++的static作用;(函数体内/模块内/模块外)
     
            
     static全局变量 & 普通全局变量;(初始化次数/作用域)
     
            
     static局部变量 & 普通局部变量;(初始化次数/存储方式)
     
            
     static函数 & 普通函数;(static函数在内存中只有一份,普通函数每次调用都维持一份复制品)
     
            
     C++静态成员;(不属于实例,属于类本身)
     
            
     i++ & ++i 效率问题;
     
            
     struct & class;(区分C的struct和C++的struct)
     
            
     C++的多态机制;
     
            
     内存泄露的检测,内存溢出和内存泄露的区别;
     
            
     大端小端判断;(union存放顺序所有成员从低地址开始存放)
     
            
     指针函数/函数指针/指针数组/数组指针;
     
            
     C++的四种强制类型转化;(const_cast/static_cast/dynamic_cast/reinterpret_cast)
     
            
     volatile作用;(修饰被不同线程访问和修改的变量,编译器不会去假定这个变量的值)
     
            
     assert;(判断程序是否出现了非法的数据/ASSERT 宏& assert 函数)
     
            
     C++main函数执行之前、之后做哪些事情;(全局对象的构造、析构,可以用atexit()注册main函数之后调用的函数)
     
            
     C++ explicit;(隐式转换的限制)
     
            
     typedef & define;
     
            
     虚函数;
     
            
     C++ template & Java generic;
     
            
     面向对象 & 面向过程;
     
            
     判断一个变量是有符号还是无符号数;(取反操作/改变符号位)
     
            
     类成员变量初始化;(按照变量声明顺序而且初始化列表顺序/当类含有const、reference、基类构造函数时需要使用初始化列表)
     
            
     构造函数可以被重载,析构函数不可以被重载;
     
            
     临时对象;(参数按值传递/返回值按值传递)
     
            
     C++继承;(考虑多重继承和虚拟 继承)
     
            
     虚函数 & 纯虚函数;(实作继承 & 介面继承)
经验分享 程序员 微信小程序 职场和发展