当前位置:   article > 正文

【C++ | Python 八股文(备战秋招)】—— 日积月累

【C++ | Python 八股文(备战秋招)】—— 日积月累

C++:
1.静态局部变量,全局变量,局部变量的特点,以及使用场景

(1)静态局部变量在函数内定义,可以在整个源程序使用。只被初始化一次,下一次初始化采用上一次的结果值
使用场景:通常用于上次函数调用结果的变量,例如计数器、累加器等
(2)全局变量只被初始化一次,其值在程序运行期间不会被改变,不同源文件的全局变量互不干扰
使用场景:表示程序的某些状态信息,全局计数器等
(3)局部变量只在函数调用期间存在,不同函数的局部变量互不干扰
使用场景:表示函数内部的临时变量

2.CPP如何实现多态

派生类继承基类、基类对应的函数使用virtual进行声明,派生类对这个函数进行重写、基类指针指向派生类对象,然后通过虚指针找到类中的虚函数表,实际去调用派生类的那个函数

3.写出int、bool、float、指针变量与零值比较的if语句

if (n == 0)
if (flag)
const float EPS = 1e-5;
if ((x >= -EPS) && (x <= EPS))
if (p == NULL)
  • 1
  • 2
  • 3
  • 4
  • 5

4.说一说c++中四种cast转换

(1)const_cast:将const变量转为非const
(2)static_cast:用于各种隐式转换,比如非const转const,void*转指针等, static_cast能用于多态向上转化,如果向下转能成功但是不安全,结果未知;
(3)dynamic_cast:用于动态类型转换。只能用于含有虚函数的类,用于类层次间的向上和向下转化。只能转指针或引用。
(4)reinterpret_cast:几乎什么都可以转,比如将int转指针,可能会出问题,尽量少用;

为什么不用C强制转换?因为转换不够明确,不能进行错误检查


Python:
1.谈谈装饰器?

本质闭包函数,作用是使其他函数在不修改代码的前提下增加额外功能,返回值是函数对象,优点就是减少很多重复性的代码,提高工作效率。

2.为什么使用装饰器?

装饰器的优点就是在不修改函数的情况下增加额外的功能并提高工作效率。旨在对函数或类功能的增强
装饰器对扩展开放,对修改封闭

3.Python 中 try else 与 finally 区别?

try …else 语句:else 语句是在 try 语句中的代码没有任何异常的情况下,再执行 else 语句下的代码。
try…finally 语句 : finally 语句就是不管上面有没有异常,都要执行 finally 语句下的代码,通常是做一些必须要释放的资源的代码,最典型的就是文件操作和数据库操作。
抛出异常 raise:raise 语句是抛出一个指定的异常。

4.遍历字典的方法?

dic = {'date':'2018.01.01', 'name':'bigdavid'}
for i in dic:
	print(i)
for key in dic.keys():
	print(key)
for value in dic.values():
	print(value)
for item in dic.items():
	print(item)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/515372
推荐阅读
相关标签
  

闽ICP备14008679号