从C语言到C++
c语言和c++的区别(特性)
c++程序是如何运行的(四个阶段),以及静态链接和动态链接的区别
命名空间的作用namespace
malloc和new的区别
内联函数和宏函数的区别
class和struct的区别
指针和引用的区别
重载和重写的区别
堆和栈的区别
大小端,如何判断大小端(共用体)
结构体对齐原则,好处
四种cast类型转换
memset函数,以及需要注意的问题,memcpy和strcpy的区别
strlen和sizeof的区别
C++面向对象
三大特性,具体解释
多态(静态多态和动态多态)和虚函数,底层原理(虚函数表和虚函数指针)
构造函数可以为虚函数吗
析构函数为什么是虚函数
纯虚函数和抽象类作用
c++内存模型,一个对象的内存大小包含哪些(如何计算一个类对象的大小)
空类的内存大小
static关键字,类内(静态成员变量、静态成员函数)类外(全局和局部静态变量),作用域生命周期存储位置
const关键字
extern关键字
volatile关键字
构造函数和析构函数的作用,基类派生类构造的顺序和析构的顺序
拷贝构造函数,调用拷贝构造函数的三种形式,深拷贝浅拷贝,移动构造函数
三种继承方式(publicprivateprotected),成员变量的访问权限
菱形继承,虚继承
函数模板和类模板
C++11新特性
auto类型,需要注意的的问题
lambda表达式
右值引用、完美转发、转移语义
智能指针shared_ptr、unique_ptr、weak_ptr
weak_ptr的作用(循环引用问题)
shared_ptr线程安全问题
其他
手写C++单例模式,懒汉式和饿汉式(线程安全的如何去写)
mutex锁和条件变量
offer加加