C/C++教程

c++面试知识总结

本文主要是介绍c++面试知识总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、对于一个频繁使用的短小函数,在c语言中应用什么实现,在c++中应用什么实现

  答:c:宏定义;c++:inline内联函数

 

2、全局变量和局部变量的区别?

  答:

    1、生命周期不同:

      全局变量:随主程序创建而创建,随主程序结束而销毁。

      局部变量:函数或者{}括号内部,退出或执行完就销毁

    2、作用域不同:

      全局变量:源文件内所有函数都可以使用

      局部变量:函数内部或者{}括号内部有效,只能局部使用

    3、内存分配不同:

      全局变量:全局数据段并且在程序运行的时候加载

      局部变量:分配在堆栈里

 

3、在申请内存找不大足够大的内存块,malloc和new将返回NULL指针,内存申请失败,怎么处理内存耗尽?

  答:直接return

 

4、如何判断一个操作系统是16位还是32位系统

  答:

    1、使用变量指针*p,sizeof(p) == 2 为16位,==4 为32位

    2、unsigned int a = ~0; if( a > 65536 ) 为32位,否则 16位

 

5、为什么数组名做参数会改变数组内容?

  答:数组名就是数组的首地址

 

6、析构函数和虚函数的用法和作用?

  答:

    析构函数:是c++特殊的类成员函数,没返回值、没参数、不能调用。在类对象执行完毕,作用是销毁并释放内存。

    虚函数:是c++多态的一种表现,使用虚函数可以动态绑定,当然也会以系统开销为代价的

 

7、引用和指针有什么区别?

  答:

    引用:必须初始化;初始化后不能改变;不存在指向空值

    指针:不必初始化;指针可以改变所指对象;指针可以指向空值

 

8、虚函数只能借助引用或者指针来达到多态的效果。

 

9、在c++中能否有虚构造函数?

  答:不能,只能有虚析构函数。

 

10、重载、重写、重定义的区别?

  答:

    重载:类对象的同名不同参函数

    重写:子类继承父类的函数

    重定义:子类继承父类的虚函数

 

这篇关于c++面试知识总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!