0.我们的公众号:扶摇就业,欢迎前往,更多面经内推,祝您早日拿到offer奥~
1.数组指针和指针数组区别
数组指针只是一个指针变量,是C 语言里专门用来指向二维数组的,它占有内存中一个指针的存储空间。指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间。
2.C++多态有哪几种?
多态:父类型的引用指向子类型的对象
静态多态(函数重载和运算符重载),是在编译的时候,就确定调用函数的类型;
动态多态(虚函数实现),在运行的时候,才能确定调用的是哪个函数,动态绑定。运行基类指针指向派生类的对象,并调用派生类的函数。
3.C++析构和构造的顺序,为什么析构函数最好是虚函数
1)构造函数顺序:先基类、再数据成员中是类对象的构造函数、最后派生类构造函数的函数体
2)析构函数顺序:与构造函数相反
3)析构函数最好是虚函数:若派生类有一个指向动态内存分配的数据成员,而又将基类的指针指向派生类对象,同时基类的析构函数又不是虚函数的话,编译器就实施静态绑定,释放基类指针所指对象的空间时候只执行基类的析构函数,不执行派生类的析构函数,那派生类动态分配的数据成员所申请的空间就不能被释放,这就造成了内存泄漏。
4.进程间的通信方式
1)管道:半双工通信方式、数据单向流动、只能在父子进程间使用
2)命名管道:半双工,允许无亲缘关系进程间的通信
3)信号量:计数器,控制多个进程对共享资源的访问
4)共享内存:映射一段能被其他进程所访问的内存
5)消息队列:消息的链表,存放在内核中并由消息队列标识符标识
6)套接字:不同设备间的进程通信
7)全双工管道
5.同步和异步的概念
所谓同步,就是发出一个功能调用时,在没有得到结果之前,该