1、C++的类和C里面的struct有什么区别?
答:struct和class的区别在于C里面的struct没有定义方法,而C++的类是将不同类型的数据和与这些数据相关的操作封装在一起的集合体,包含了操作方法。
2、请说出const与#define相比,有何优点?
答:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。
有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。
3、类成员函数的重载、覆盖和隐藏区别?
答:成员函数被重载的特征:相同的范围(在同一个类中);函数名字相同;参数不同;virtual关键字可有可无。
覆盖是指派生类函数覆盖基类函数,其特征是:函数名字相同;参数相同;范围不同(分别位于派生类与基类中);基类函数必须有 virtual
关键字。
“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。
4、堆和栈的区别?
答:栈是由编译器自动分配释放,用来存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
堆一般是由程序员分配释放,若程序员不释放,程序结束时可能由操作系统回收。
5、面向对象的三个基本特征,并简单叙述之?
答:封装:将客观事物抽象成类,每个类对自身的数据和方法实行访问权限保护(private,protected,public)。
继承:广义的继承有三种实现形式:实现继承、可视继承、接口继承。前两种(类继承)和后一种(对象组合=>接口继承以及纯虚函数)构成了功能复用的两种方式。
多态:是将父类对象设置成为和一个或多个他的子类对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给其父类类型的指针。
6、构造函数可否是虚函数,为什么?析构函数呢,可否是纯虚的呢?
答:构造函数不能为虚函数,要构造一个对象,必须清楚地知道要构造什么,否则无法构造一个对象。析构函数可以为纯虚函数。
7、C++是不是类型安全的?
答:C++不是类型安全的。因为两个不同类型的指针之间可以强制转换(用reinterpret cast)。
8、多态的作用?
答:多态的作用包括:隐藏实现细节,使得代码能够模块化;扩展代码模块,实现代码重用。接口重用:为了在继承和派生的时候,保证使用家族中任一类的实例的某一属性时的正确调用。
9、请找出下面代码中的错误。
void test (){
char string[10];
char*
str1 = "0123456789";
strcpy( string, str1 );
}
答:字符串str1需要11个字节才能存放下(包括末尾的’\0’),而string只有10个字节的空间,strcpy会导致数组越界。
10、请找出下面代码中的错误。
void test(char* str1){
char string[10];
if( strlen( str1 ) <= 10 ){
strcpy( string, str1
);
}
}
答:if(strlen(str1) <= 10)应改为if(strlen(str1)
< 10),因为strlen的结果未统计’\0’所占用的1个字节。
11、参数传递具体有哪几种方式?
答:参数传递具体包括:值传递,指针传递和引用传递三种方式。
12、重载和重写的区别?
答:首先从定义上来说:
重载:是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。
重写:是指子类重新定义复类虚函数的方法。
其次从实现原理上来说:
重载:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。如,有两个同名函数:function
func(p:integer):integer;和function
func(p:string):integer;。那么编译器做过修饰后的函数名称可能是这样的:int_func、str_func。对于这两个函数的调用,在编译期间就已经确定了,是静态的。也就是说,它们的地址在编译期就绑定了(早绑定),因此,重载和多态无关。
重写:和多态真正相关。当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态的调用属于子类的该函数,这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。因此,这样的函数地址是在运行期绑定的(晚绑定)。
13、虚函数的本质和实现机制?
答:虚函数的本质就是通过基类访问派生类定义的函数。虚函数只能借助于指针或者引用来达到多态的效果。
分享到:
相关推荐
c++笔试题汇总c++笔试题汇总c++笔试题汇总c++笔试题汇总c++笔试题汇总c++笔试题汇总c++笔试题汇总c++笔试题汇总
C++ 笔试题汇总 C++ 笔试题汇总 C++ 笔试题汇总 C++ 笔试题汇总
c++笔试题汇总.pdf C++经典面试题库 附带参考答案.docx C++语言程序设计试题.docx CC++面试问题分类大汇总.docx C_C++笔试题大全.doc gamesloft C++面试题目.docx 常见C++笔试题目整理(含答案).docx 经典C++面试题...
c++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rarc++笔试题汇总.rar
这是本人亲自总结的C++笔试题汇总,参考了网络很多C++笔试题(包括各大IT公司,游戏公司),挑选出了一些经典的题和难题做解析。 作用:对工作面试笔试和C++水平提高很有用处 内容:C++,STL等;
本人精心选择的选出的一套C++笔试题,找工作的亲,赶紧下吧。 选择+填空+简答+编程 含答案
C++笔试题 1.多态类中的虚函数表是Compile-Time,还是Run-Time时建立的? 答案:虚拟函数表是在编译期就建立了,各个虚拟函数这时被组织成了一个虚拟函数的入口地址的数组.而对象的隐藏成员--虚拟函数表指针是在运行期...
欧美某著名浏览器公司的C++笔试题,很有挑战性!
经典C/C++笔试题大全,大家可以好好的通过学习来准备笔试
腾讯公司C_C++笔试题,包含了历年招聘的笔试题。
C++笔试题 Sony笔试题 几道题目及自做答案 北电 普天C++笔试题 我所收集的intel比试题 面试题 2005年腾讯招聘 微软 微软亚洲技术支持中心面试题目 微创笔试题目(微创,微软在中国的合资公司) Intel笔试面试题目 ...
C++笔试题.doc.rarC++笔试题.doc.rarC++笔试题.doc.rarC++笔试题.doc.rarC++笔试题.doc.rarC++笔试题.doc.rarC++笔试题.doc.rarC++笔试题.doc.rarC++笔试题.doc.rarC++笔试题.doc.rarC++笔试题.doc.rarC++笔试题.doc...
各大公司C++笔试题(含部分答案) 各大公司C++笔试题(含部分答案)
c++笔试题汇总,对应届毕业生来说很有帮助
gameloft c++笔试题
c++笔试题 各大企业笔试题 c++笔试题 各大企业笔试题
某企业的C++笔试题,题目非常全面。没有答案的,但我相信你自己做了这份题目后,可以发现自己的不足。
西门子社招软件C/C++笔试题及答案
根据工作学习,以及各大公司C/c++笔试题收集,包括基础性的,深层次的c/c++的题目,应用开发,嵌入式开发中运用的c/c++语言都有大量涉及;是你在面试求职过程的好帮手。
C/C++笔试题 比较完整的,里面不是所有都有答案,而且还有极少错误,先在此声明,还望见谅!