库-摘自《C++沉思录》Andrew Koenig

本文探讨了如何设计可扩展的C++类库,重点介绍了类库设计者所需承担的任务,包括确保类的行为正确,提供直观的操作,并减少用户错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       C++是可扩展的。用户不能改变底层语言本身--不能增加新的操作符或者改变语法--但是可以为这门语言增加新的类型。在这方面,C++与某些自然语言相似,如在英语中,人们可以发明新词,但是很难改变语法。然而,扩展语言说起来容易做起来难。

       迄今为止我们所见过的绝大多数 类都是为解决特定问题而设计的。我们曾经考虑过类是否可在所有情况下为所有用户使用。我们曾花费过精力来改进类,但最关注的还是在原有条件下使用类。这是大部分类被设计和创建的过程。但是,有时我们想做的不仅仅是为方便自己使用增加新类型,还希望支持其他用户的使用需求。如果某一组类的设计和实现是希望得到广泛应用,那么我们就称之为库

       为了设计其他人也能使用的类,库作者需要承担许多类似语言设计者的工作。类的使用者希望这个类足够“聪明”。他们希望类设计者提供的行为,与我们通常希望编译器提供的行为相似:正确的创建、复制、赋值或者销魂对象。他们还希望类有一些合理的语义:要有足够的操作供他们以直观的或者自然的方式使用这个类

      所谓的“聪明”,还要求类接口的设计有助于减少用户可能犯下的错误,这一点总是被人忽视

       让用户进行语言设计也有不利的一面,因为C++语言本身必须按照库设计者的需求来设计。这涉及到范围广泛的问题,从允许用户自定义类成为完全类型,到类型安全的连接,不一而足。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值