C++常见面试题

格桑2021-12-20 11:44

  看到好用的经典C++题目,对机试和笔试,甚至面试都有帮助,特意分享,希望大家都可以一起共同成长!

C++常见面试题

  谈谈static关键字的作用。

  参考回答:

  1、全局静态变量。

  在全局变量之前添加关键字static,将全局变量定义为全局静态变量。

  在整个程序运行过程中,静态存储区一直存在。

  初始化:未初始化的全局静态变量将自动初始化为0(自动对象的值是任意的,除非它显式初始化);

  功能域:全局静态变量在声明他的文件之外是看不见的,准确地说,从定义开始,到文件结束。

  2、局部静态变量。

  在局部变量之前添加关键字static,局部变量将成为局部静态变量。

  内存中的位置:静态存储区。

  初始化:未初始化的全局静态变量将自动初始化为0(自动对象的值是任意的,除非它显式初始化);

  功能域:功能域仍然是局部功能域。当定义其函数或句块结束时,功能域结束。然而,当局部静态变量离开功能域时,它并没有被销毁,而是仍然停留在内存中,但我们不能再访问它,直到函数再次被调用,值不变;

  3、静态函数

  在函数返回类型之前添加static,函数被定义为静态函数。默认情况下,函数的定义和声明是extern,但静态函数只能在声明他的文件中看到,不能用于其他文件。

  如果用static修改函数的实现,则该函数只能在本cpp中使用,不会与其他cpp中的同名函数发生冲突;

  warning:不要在第一个文件中声明static的全局函数,也不要在cpp中声明非static的全局函数。如果你想在多个cpp中重用这个函数,把它的声明提到第一个文件中,否则cpp的内部声明需要用static修改;

  4、静态成员。

  在类别中,静态成员可以实现多个对象之间的数据共享,使用静态数据成员不会破坏隐藏的原则,即确保安全。因此,静态成员是该类所有对象中共享的成员,而不是某个对象的成员。对于多个对象,静态数据成员只存储一个地方供所有对象共享。

  5、静态函数。

  静态成员函数和静态数据成员一样,都是静态成员,不是对象成员。因此,静态成员的引用不需要使用对象名。

  在实现静态成员函数时,不能直接引用类中描述的非静态成员,可以引用类中描述的静态成员(这一点非常重要)。如果静态成员函数中应引用非静态成员,可以通过对象引用。可以看出,静态成员函数的调用如下:类名>:静态成员函数名>(参数表>);

  以上就是小编为大家整理发布的“C++常见面试题”一文,更多相关内容尽在开课吧广场C++教程频道。

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享
全部评论快来秀出你的观点
登录 后可发表观点…
发表
暂无评论,快来抢沙发!
算法刷题核心能力提升营