C++面试题目一(相关链接整理)

一、基础知识

  1、基本语言

    1、说一下static关键字的作用

        传送门:https://www.cnblogs.com/biyeymyhjob/archive/2012/07/19/2598815.html

        个人理解:a.所有未加static的全局变量和函数具有全局可见性。加了static,就会对其源文件隐藏。而对于函数来讲,static的作用就仅仅局限于隐藏。

             b.保持变量内容的持久。(static变量中的记忆功能和全局生存期)程序开始时的初始化将静态存储区中的全局变量和static变量,而static控制其可见范围。说到底还是隐藏。

                如果作为static局部变量在函数内定义,它的生存期为整个源程序,但是其作用域仍与自动变量相同,只能在定义该变量的函数内使用该变量。

                退出该函数后, 尽管该变量还继续存在,但不能使用它.

             c.将变量初始化为0(如稀疏矩阵的初始化)。

             d.C++中的类成员声明static: 1.类的静态成员函数属于而非类的对象,没有this指针,所以仅能访问类的静态数据和静态成员函数。

                          2.不能将静态成员函数定义为虚函数。

                          3.静态数据成员必须被初始化,因为其是静态存储的。

                          4.静态成员初始化一般在类体外进行,前面不加static,初始化时不加成员访问权限控制符(public private等)

                           5.节省子类对父类静态成员的访问时间,节省了子类的内存空间。

                           6.在子类定义一个和父类相同的静态变量可以屏蔽父类的影响(name-mangling)

   2.C++和C的区别

    传送门:https://blog.csdn.net/bitboss/article/details/62884694 

  3.C++中四种cast转换

    传送门:https://blog.csdn.net/caroline_wendy/article/details/19042529

  4.判断一个点在三角形中并用代码实现

    传送门:https://www.cnblogs.com/graphics/archive/2010/08/05/1793393.html

  5.怎么判断一个数是2的倍数,求一个数中有几个1,说一下思路并手写代码

    我猜: 最蠢的办法可以第一个模2为0则是,第二个模10然后判断是否为1,搞个计数器来计数就行/或:如果是求二进制表达中有几个1的话,可以用位运算,和1做&运算。

  6.STL中容器的底层实现

    https://blog.csdn.net/single_wolf_wolf/article/details/52854015

原文地址:https://www.cnblogs.com/xingzhuan/p/10686927.html