> 文档中心 > 2022年5月22日记:Linux服务器开发,面试准备知识点

2022年5月22日记:Linux服务器开发,面试准备知识点

────────────────────────────────────
推荐一个 零声学院 免费公开课程,个人觉得老师讲得不错,分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习]
后台服务器:https://course.0voice.com/v1/course/intro?courseId=5&agentId=0
────────────────────────────────────

  • 1、父类指针子类对象,无法调用子类成员函数。父类指针想调用子类的函数,那就要加上virtual。

  • 2、动态绑定的概念,只有在程序运行时才知道调用的是哪个函数,取决new的是谁。

  • 3、多态性:查虚函数表,动态绑定。

  • 4、纯虚函数在基类中没有定义,但是要求子类必须重写纯虚函数。

  • 5、父类指针子类对象,虚析构如果不是虚函数,不调用子类的析构函数,导致内存泄漏。如果是虚函数就解决了这个问题。

  • 6、普通类可以不写析构函数,但是如果做基类就必须是虚析构。

  • 7、类C想修改类A,就要在类A中定义类C为友元类。friend class C;想让谁访问就在本类中写下访问白名单。

  • 8、friend void C::callCAF(int x,A &a);在A类中写下本行代码,友元成员函数。

  • 9、Human *phuman=new Men;Men *pmen=(dynamic_cast(phuman));必须有虚函数。

  • 10、class A final{}; 不做基类的类用final关键字。

  • 11、std::move()将一个左值强制转为右值,没有移动的语义。

string str{"i love china"};string &str1{str};//string &str2{"i love china "};const string & str3{"i love china"};string &&str4{"i love china "};
  • 14、operator int() const k可以用static_cast(test)强制类型转化为对应的类型,这个技能值得拥有。

  • 15、using C++2.0定义函数指针新用法

typedef  void(* point)(int );using point=void(* )(int );operator point(){retrun func;}
  • 16、普通类成员指针的形式:
void (CT::*name)(int);name=&CT::ptfunc;CT ct,*pct;pct=&ct;(ct.*name)(15);(pct->*name)(16);int CT::*mp=&CT::m_a;

成员函数属于类,只要有类在就有成员函数在。如果要使用就要有类对象。

总结

通过本节的归纳,已经对面试经常问到的问题做了整理,希望大家都能从容不迫的应对面试笔试咯。