没有合适的资源?快使用搜索试试~ 我知道了~
首页C++面试精华:STL详解、VC错误解析、继承与委派差异
C++面试精华:STL详解、VC错误解析、继承与委派差异
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 43 浏览量
更新于2024-07-18
收藏 39KB DOCX 举报
本文档涵盖了C++编程中的一些核心概念和面试常见问题,包括标准模板库(STL)的介绍、Visual C++(VC++)中的常见错误分析、继承与委派的区别以及指针与引用的对比。首先,STL是C++中重要的工具集,它提供了一系列高效的数据结构和算法,如vector,它是一种动态数组,可以根据数据增长自动调整内存。在VC++中,常见的错误代码C2001、C2005和C2011通常涉及编译时的错误,比如未定义的外部符号,可能是由于函数或变量拼写错误、版本冲突或引用问题。 在面向对象设计中,继承和委派是两种不同的机制。继承用于创建子类,继承者可以继承父类的属性和行为,是实现多态的基础。而委派则是通过指针或引用来间接调用对象的方法,适用于对象的类型不影响方法执行情况。通常情况下,组合(Composition)被认为优于继承,因为它提供了更好的模块化和灵活性。 接下来,文档详细解释了指针和引用的区别。指针是一个变量,可以存储地址并间接访问内存中的数据,而引用必须在创建时就绑定到已存在的对象上,且一旦确定后不可更改。由于引用避免了空指针和潜在的指针安全问题,所以在传递参数或操作对象时,引用通常被认为是更安全的选择。然而,即使使用常量指针,只要确保其不会被修改,也可以在某些场景中使用。 这份文档为C++程序员提供了关于基础概念、错误处理和设计模式的重要参考,对于理解和应对C++面试挑战以及提高编程实践中的效率和安全性具有实用价值。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/21735604/bg9.jpg)
)。主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成为
了J无所指J的引用,程序会进入未知状态。
()不能返回函数内部 K 分配的内存的引用。这条可以参照 NO"
";<的 )。虽然不存在局部变量的被动销毁 问题,可对于这种情况
(返回函数内部 K 分配内存的引用),又面临其它尴尬局面。例如,被函数
返回的引用只是作为一个临时变量出现,而没有被赋予一个实 际的变量,那么
这个引用所指向的空间(由 K 分配)就无法释放,造成 P。
())可以返回类成员的引用,但最好是 %。这条原则可以参照 NO
"";<的 ) 。主要原因是当对象的属性 是与某种业务规则($%%%
$)相关联的时候,其赋值常常与某些其它属性或者对象的状态有关,因此
有必要将赋值操作封装在一个业务规则当 中。如果其它对象可以获得该属性的
非常量引用(或指针),那么对该属性的单纯赋值就会破坏业务规则的完整性。
(-)流操作符重载返回值申明为“引用”的作用:
流操作符>>和QQ,这两个操作符常常希望被连续使用,例 如:$>>
J1J>>. 因此这两个操作符的返回值应该是一个仍然支持这两个操
作符的流引用。可 选的其它方案包括:返回一个流对象和返回一个流对象指针。
但是对于返回一个流对象,程序必须重新(拷贝)构造一个新的流对象,也就
是说,连续的两 个>>操作符实际上是针对不同对象的!这无法让人接受。对
于返回一个流指针则不能连续使用>>操作符。因此,返回一个流对象引用 是
惟一选择。这个唯一选择很关键,它说明了引用的重要性以及无可替代性,也
许这就是 ""语言中引入引用这个概念的原因吧。赋值操作符8。这个操作符
象流 操作符一样,是可以连续使用的,例如:&8R8 .或者&8 8 .
![](https://csdnimg.cn/release/download_crawler_static/21735604/bga.jpg)
赋值操作符的返回值必须是一个左值,以便可以被继续赋值。因此引 用成了这
个操作符的惟一返回值选择。
例 )
S$
D$.
%; <.
8E.
A
$ 8 .??以 $ 函数值作为左值,等价于 %; <8 .
$68 .??以 $6函数值作为左值,等价于 %;6<8 .
$>>%; <.
$>>%;6<.
C
D$
A
GQ8 DD>86$%;<.
%A$>>J%$%J.$.C
C
(!)在另外的一些操作符中,却千万不能返回引用:"E=?四则运算符。它们
不能返回引用,NO"";<的 ) 详 细的讨论了这个问题。主要
原因是这四个操作符没有 %O,因此,它们必须构造一个对象作为返回
值,可选的方案包括:返回一个对象、返回一 个局部变量的引用,返回一个
K 分配的对象的引用、返回一个静态对象引用。根据前面提到的引用作为返
回值的三个规则,第 、) 两个方案都被否决了。静态 对象的引用又因为
"88"会永远为 $ 而导致错误。所以可选的只剩下返回一个对
象了。
/引用与多态的关系?
引用是除指针外另一个可以产生多态效果的手段。这意味着,一个基类的引用
![](https://csdnimg.cn/release/download_crawler_static/21735604/bgb.jpg)
可以指向它的派生类实例。
例 -
%%2.%%@3%%2AC.@.2DG8.
0引用与指针的区别是什么?
指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中
使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作
就是对目标变量的操作。此外,就是上面提到的对函数传 G 和 的区
别。
4什么时候需要“引用”?
流操作符>>和QQ、赋值操作符8的返回值、拷贝构造函数的参数、赋值操作
符8的参数、其它情况都推荐使用引用>?%;6<.
>?%; <.
以下三条输出语句分别输出什么?; 易<
1%;<8'(.
1%;<8'(.
%1%);<8'(.
%1%-;<8'(.
%1=%!8'(.
%1=%/8'(.
$>>1>>%88%>>.??输出什么?
$>>1>>%)88%->>.??输出什么?
$>>1>>%!88%/>>.??输出什么?
非 ""内建型别 2和 @,在哪几种情况下 @ 能隐式转化为 2?;""中等<
答:
剩余51页未读,继续阅读
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/ec7f24ace4574ddf9f7859b8d43ec482_weixin_39709134.jpg!1)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/user-vip.1c89f3c5.png)
java李杨勇
- 粉丝: 34w+
- 资源: 3180
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 计算机人脸表情动画技术发展综述
- 关系数据库的关键字搜索技术综述:模型、架构与未来趋势
- 迭代自适应逆滤波在语音情感识别中的应用
- 概念知识树在旅游领域智能分析中的应用
- 构建is-a层次与OWL本体集成:理论与算法
- 基于语义元的相似度计算方法研究:改进与有效性验证
- 网格梯度多密度聚类算法:去噪与高效聚类
- 网格服务工作流动态调度算法PGSWA研究
- 突发事件连锁反应网络模型与应急预警分析
- BA网络上的病毒营销与网站推广仿真研究
- 离散HSMM故障预测模型:有效提升系统状态预测
- 煤矿安全评价:信息融合与可拓理论的应用
- 多维度Petri网工作流模型MD_WFN:统一建模与应用研究
- 面向过程追踪的知识安全描述方法
- 基于收益的软件过程资源调度优化策略
- 多核环境下基于数据流Java的Web服务器优化实现提升性能
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)