C++是面向过程也面向对象的语言,具有 预处理器、预处理器指令和宏、模板、对象、封装、继承、多态的特性。
1、C++程序的内存通常如何分配?
解答:
- 全局数据区:通常存储全局变量、静态数据和常量
- 代码区:所有类成员函数和非成员函数代码
- 栈区:执行函数时分配的局部变量、函数参数、返回数据及返回地址等都是在栈区上创建的
- 堆区:从堆区上分配的内存是在程序运行时由程序员申请的内存,在程序结时由程序员负责释放
2、请谈一下你对C++单元测试框架CppUnit的认识?
解答:CppUnit是C++单元测试框架,是个开源项目,最初版本移植自Junit,其主要功能就是对单元测试进行管理,并可以进行自动化测试。
CppUnit特点就是:
- XML形式输出结果,可以获取附加数据以便于调试程序;
- 类似编译器文本输出,并于IDE集成
- 帮助宏更有利于测试套件的定义,并提供分层测试
- 测试注册以减少重新编译的需要
- 测试插件可以更快的编译测试
- 可以保护封装测试的执行
- 可支持Mfc和QT测试运行。
3、请分别详细解释C++中成员函数的重载、覆盖和隐藏的区别和联系。
解答:
重载:相同的范围;函数名相同;参数不同;virtual关键字可有可无。
覆盖:不同的范围,函数名相同;参数相同;基类函数必须有virtual关键字。
隐藏:指派生类函数屏蔽了与其同名的基类函数,如果派生类的函数和基类函数同名但参数不同,不论有没有virtual关键字,基类函数被隐藏;
如果派生类的函数和基类函数同名且参数相同,但基类函数没有virtual关键字,基类函数被隐藏。
4、谈谈对C++语言虚函数的认识,并解释纯虚函数的用途。
解答:虚函数首先是一种成员函数,可以被该类的派生类中被重新定义并被赋予另外一种处理功能。虚函数允许派生类取代基类所提供的实现,是动态确定的。
纯虚函数是一个抽象类,是不能被实例化的,用来规范派生类的行为,实际上也就是所谓的“接口”。
5、static全局变量与普通全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
解答:static全局变量是静态存储方式,普通全局变量也是静态存储方式,主要区别就是static全局变量限制了其作用域,只在定义该变量的源文件内有效,在其他源文件不能使用。static全局变量只能初始化一次,以防止在其他文件单元中被引用。将普通局部变量改为static局部变量就是改变了存储方式,即改变了它的生存期,static局部变量只能初始化一次,下一次依据上一次的结果值。?static函数与普通函数作用域不同,?static函数只在当前源文件使用,在当前源文件说明和定义,?static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝。
标签:入门,派生类,C++,static,基类,全局变量,函数 From: https://www.cnblogs.com/linxiu-0925/p/17387680.html