北方华创面试(2023/8/9)
1、三次挥手建立连接与四次握手断开连接?
2、虚函数与纯虚函数的区别?
①含有纯虚函数的类被成为抽象类,该类不能被实例化,否则会报错。抽象类一般用于定义一些公有的方法。子类继承抽象类也必须实现其中的纯虚函数才能实例化对象。
②纯虚函数首先是虚函数,其次它没有函数体,取而代之的是用“=0”。
③虚函数是为了实现动态编联产生的,目的是通过基类类型的指针指向不同对象时,自动调用相应的、和基类同名的函数。当一个成员函数被声明为虚函数之后,其派生类中同名函数自动成为虚函数,在派生类中重新定义此函数时要求函数名、返回值类型、参数个数和类型全部与基类函数相同。
④纯虚函数只是相当于一个接口名,但含有纯虚函数的类不能够实例化。
⑤既然是虚函数,它的函数指针会被存在虚函数表中,由于纯虚函数并没有具体的函数体,因此它在虚函数表中的值就为0,而具有函数体的虚函数则是函数的具体地址。
#include <iostream> using namespace std; class Base { public: virtual void fun1() { cout << "普通虚函数" << endl; } virtual void fun2() = 0; virtual ~Base() {} }; class Son : public Base { public: virtual void fun2() { cout << "子类实现的纯虚函数" << endl; } }; int main() { Base* b = new Son; b->fun1(); //普通虚函数 b->fun2(); //子类实现的纯虚函数 return 0; }
3、说一说C++里面的虚函数?
4、深度拷贝与浅度拷贝的区别?
5、C++中调用构造函数的过程?
6、C++的特征?
7、socket套接字相关的知识?
#笔试面试#