北京C++培训
美国上市C++培训机构

010-62126400

热门课程

北京C++培训 > 雇主企业 > 企业面试题 >C++面试常见问题整理汇总(二)

C++面试常见问题整理汇总(二)

  • 时间:2018-08-29 11:35
  • 发布:北京C++培训
  • 来源:企业面试题

今天主要介绍C++常见面试问题—二,北京达内C语言培训继续分享:

4. C中static有什么作用

① 隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,故使用static在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。

② 保持变量内容的持久。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量。

③ 默认初始化为0.其实全局变量也具备这一属性,因为全局变量也存储在静态数据区。在静态数据区,内存中所有的字节默认值都是0×00,某些时候这一特点可以减少程序员的工作量。

5. 简述C\C++程序编译的内存情况分配

C、C++中内存分配方式可以分为三种:

(1)从静态存储区域分配:内存在程序编译时就已经分配好,这块内存在程序的整个运行期间都存在。速度快、不容易出错,因为有系统会善后。例如全局变量,static变量等。

(2)在栈上分配:在执行函数时,函数内局部变量的存储单元都在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

(3)从堆上分配:即动态内存分配。程序在运行的时候用 malloc 或 new 申请任意大小的内存,程序员自己负责在何时用 free 或 delete 释放内存。动态内存的生存期由程序员决定,使用非常灵活。如果在堆上分配了空间,就有责任回收它,否则运行的程序会出现内存泄漏,另外频繁地分配和释放不同大小的堆空间将会产生堆内碎块。

一个 C、C++程序编译时内存分为 5 大存储区:堆区、栈区、全局区、文字常量区、程序代码区。

6. 面向对象的三大特征

① 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

② 继承,是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”和“组合”来实现。

③ 多态,简单的说,就是一句话:允许将指向子类类型的指针赋值给父类类型的指针。实现多态,有二种方式,覆盖,重载。

覆盖,是指子类重新定义父类的虚函数的做法。

重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。

总结:作用

① 封装可以隐藏实现细节,使得代码模块化

② 继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用

③ 多态则是为了实现另一个目的——接口重用!多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。

今天主要分享了static的作用,C++内存分配方式及面向对象的三大特征.想了解更多C语言方面的知识,就来参加北京达内C语言培训。

上一篇:C++面试常见问题整理汇总(一)
下一篇:C++面试常见问题整理汇总(三)

C++面试常见问题整理汇总(二)

C++面试常见问题整理汇总(一)

选择城市和中心
贵州省

广西省

海南省