近期出现的C++面试题整理(附详细答案)

VIP免费
2024-12-10 0 0 50.12KB 58 页 5.9玖币
侵权投诉
第一部分:简答题
1.一下 C++static_cast和dynamic_cast的区别。
答:static_cast用于有比较明确定义的变换,包括不需要强制转换的变换。
dynamic_cast适用于类型安全的向下转换,常用在继承中的父类指
针向子类指针的转换。若转换成功则返回改类型的指针,若失败,则返回
NULL
1. Struct和 class的区别。
答:struct 是一种结构体类型的标志,它和 C++中的 Class 很相似。
C++中两者的唯一区别在于:Class 定义中默认情况下的成员都是私有的,
而结构 Struct定义中默认情况下的成员都是公有的。
在 C中,结构中不能有成员函数,而在 C++中可以有成员函数.
1. 是不是一个父类写了一个 virtual函数,如果子类覆盖它的函数不加
virtual,也能实现多态?
答:virtual 修饰符会被隐形继承的。private也被继承,只是派生类没有访问权
限而已。virtual 可加可不加。子类的空间里有父类的所有变量(static 除外)。同
一个函数只存在一个实体(inline 除外)。子类覆盖它的函数不加 virtual,也能实现
多态。在子类的空间里,有父类的私有变量。私有变量不能直接访问。
1. C 和 C++有什么不同?(从机制,适用领域等方面说说)
答:从机制上:C是面向过程的(但 c也可以编写面向对象的程序);C++是面
向对象的,提供了类。但是,C++编写面向对象的程序比 C容易
从适用的方向:C适合要求代码体积小的,效率高的场合,如嵌入式;C++
合更上层的,复杂的;llinux 核心大部分是 C写的,因为它是系统软件,效率
要求极高。
从名称上也可以看出,C++C多了+,说明 C++c的超集;那为什么不叫
C+而叫 C++呢,是因为 C++C来说扩充的东西太多了,所以就在 C后面放上
两个+;于是就成了 c++
C 语言是结构化编程语言,C++是面向对象编程语言。
C++侧重于对象而不是过程,侧重于类的设计而不是逻辑的设计。
1. 请说出 const #define相比,有何优点?
答:
1)const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行
类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替
换可能会产生意料不到的错误。
2)有些集成化的调试工具可以对 const常量进行调试,但是不能对宏常量进
行调试。
1. 简述数与指针的区别?
答:数要么在态存区被创建(如全),要么在上被创建。指针
可以随时指向意类型的
(1)修改容上的
chara[]=hello;
a[0]=X;
char*p=world;//p指向常量字符
p[0]=X;//编译器不能错误,错误
(2)用运算sizeof可以计出数的容量(字数)。sizeof(p),p为指针
到的是一个指针变量的字数,而不是 p所指的存容量。C++/C语言没有
法知道指针所指的存容量,除时记住它。组作为函数
数进行传递时组自动退化为同类型的指针。
chara[]=“helloworld”;
char*p=a;
cout<<sizeof(a)<<endl;//12字
cout<<sizeof(p)<<endl;//4字
和指针的存容量
voidFunc(chara[100])
{
cout<<sizeof(a)<<endl;//4字而不是 100
}
1. 类成员函数的重载、覆盖和隐区别?
答:
a.成员函数被重特征
1)相同的范围(在同一个类中);
2)函数名字相同;
3数不同;
4virtual关键字可有可
b.覆盖是指派生类函数覆盖类函数,特征是:
1)不同的范围(分别于派生类与类);
2)函数名字相同;
3数相同;
4类函数必须virtual关键字。
c.藏”是指派生类的函数屏蔽了与同名的类函数,则如下:
1)如果派生类的函数与类的函数同名,但是数不同。此时,不
virtual 关键字,类的函数被隐意别与重载混淆)。
2)如果派生类的函数与类的函数同名,并且数也相同,但是类函数没
virtual关键字。此时类的函数被隐意别与覆盖混淆
摘要:

第一部分:简答题1. 一下C++中static_cast 和 dynamic_cast 的区别。答:static_cast 用于有比较明确定义的变换,包括不需要强制转换的变换。    dynamic_cast 适用于类型安全的向下转换,常用在继承中的父类指针向子类指针的转换。若转换成功则返回改类型的指针,若失败,则返回NULL。 1.Struct 和class 的区别。答:struct是一种结构体类型的标志,它和C++中的Class很相似。  C++中两者的唯一区别在于:Class定义中默认情况下的成员都是私有的,而结构Struct                  定义中默认情况下的成员都是...

展开>> 收起<<
近期出现的C++面试题整理(附详细答案).docx

共58页,预览3页

还剩页未读, 继续阅读

声明:本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。玖贝云文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知玖贝云文库,我们立即给予删除!
分类:计算机 价格:5.9玖币 属性:58 页 大小:50.12KB 格式:DOCX 时间:2024-12-10

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 58
客服
关注