- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++之父谈C++的未来发展.doc
C++之父谈C++的未来发展?
C++ 之父Bjarne
富有活力的语言需要不断改变和成长,C++也不例外。在本文中,Bjarne Stroustrup提出了自己对C++的设计和演化的看法。
为了让编译器、工具和类库实现者跟上节奏,让用户吸收标准C++所支持的编程技术,在早有预计的、沉寂了几年之后,委员会再次考虑语言扩展问题了。扩展工作组已经建立了,它代替了演化工作组。名称的改变(这是TomPlum的建议)反映了更重要的是语言特性和标准类库工具的集成。我仍然是该工作组的主席。我希望这可以确保C++版本的连贯性和最终结果的一致性。相似的,委员会成员资格也显示了大量人员和组织的连续参与。幸运的是,也出现了很多新的面孔,为委员会带来了新的影响和新的专家意见。
我们打算对语言本身的改变保持谨慎和保守,重点强调兼容性。主要的目的是把主要的努力引导到标准类库的扩展上来。在标准类库方面,我们的目标是大胆进取,利用一切机会。
对于标准类库,我希望根据类库技术报告的要素来建立它,使它成为一个用于系统编程的更广泛的平台。例如,我希望看到用于某些领域的类库,例如目录/文件夹操作、线程和套接字。我还希望委员会同情很多新的C++程序员,提供类库工具支持背景不同的新手(不是新程序员和C的难民)。例如,我希望看到一个使用范围检查STL的标准方法。我对最频繁地被请求添加到标准类库中的标准GUI(图形用户接口)的期望值很低。但是,奇迹有时候也会发生--记得STL吗?
对于语言本身,我希望重点强调支持泛型编程的特性,因为泛型编程是语言的使用取得最大进步的领域。此处,我将调查两个关键部分:
·概念(Concepts):用于模板参数的类型系统
·初始化器(Initializer)列表:初始化工具的泛化
与以往一样,建议的数量仍然远远超出了委员会能够处理和该语言能够吸收的数量。请记住,接受所有好的建议是不可能办到的。该语言扩展以支持泛型编程的全部目标是为工具提供更大的一致性,允许我们用泛型直接表示用于解决问题的类。
我的其它优先考虑(与更好地支持泛型编程一起)是更好地支持初学者。目前的建议有一种值得注意的倾向,即这些建议照顾了哪些提出和评估建议的专家用户。有些简单地帮助那些新手的建议经常被忽略了。我认为这是一种潜在的致命的设计偏好。除非新手受到了充分的支持,否则只有很少人能够成为专家。此外,很多人并不希望成为专家;他们希望仍然是偶然的C++用户。例如使用C++进行物理计算或控制试验设备的物理学家只有有限的学习编程技术的时间。计算机专家可能会在编程技术方面花费很多时间,而不仅仅是期望。我们必须消除那些采用优良技术的不必要的障碍。
一个非常简单的例子如下:
vectorVECTOR v;?
在98年的C++中,这会导致语法错误,因为是一个单独的词汇记号,而不是封闭模板参数列表的两个。V正确的声明可能是:
vector vector v;?
我把它看作是一种阻碍。我曾经建议这个问题值得解决,但是当前的规则和演化工作组用一些很好的理由两次拒绝了我的建议。但是,这些理由都是语言技术方面的,而新手(包括其他语言的专家)没有兴趣。不接受第一种(也是十分)明显的v声明浪费了用户和教师的时间。我希望问题和其它相似的阻碍不要再出现在C++0x中。实际上,我与Francis Glassborow和其他人一起,正在试图系统地消除最频繁发生的这类阻碍。
??? 另一个阻碍是:使用默认的复制操作(构造或赋值)来复制带有用户自定义析构函数的类对象是合法的。在这种情况下,要求用户自定义的复制操作将消除大量的、与资源管理相关的麻烦错误。例如,考虑下面这个过度简单化的字符串类:
class String { public: String(char* pp) :sz(strlen(pp)), p(new char[sz+1]) { strcpy(p,pp); } ~String() { delete[] p; } char operator[](int i) { return p; } private: int sz; char* p; }; void f(char* x) { String s1(x); String s2 = s1; }?
在构造s2之后,s1.p 和 s2.p指向相同的内存区域,而这块内存被删除了两次,可能导致灾难性的后果。这个问题对于经验丰富的C++程序员来说是很明显的,他们一般会提供适当的复制操作或禁止复制。但是,这个问题会严重地困扰新手,破坏其对语言的信任。
禁止带有指针成员的类对象的默认复制行为可能更好,但是这会导致令人厌烦的兼容性问题。修补长期存在的问题的难
您可能关注的文档
最近下载
- LTC从线索到现金完整培训课件(65p).pptx VIP
- 公路工程月进度计划.docx VIP
- 2025年人文关怀在临床护理中的应用题库答案-华医网项目学习.docx VIP
- 公路工程月进度计划.pdf VIP
- LTC线索到现金流程构建的思路方法.pptx VIP
- 三电平逆变器空间电压矢量PWM调制:原理、挑战与实现策略.docx
- 《民法典》合同编关键条款精讲.pptx VIP
- 人教版二年级上册数学全册教学设计(配2025年秋新版教材).docx
- 2025年行政务服务中心综合窗口办事员考试题库及答案.docx VIP
- 三年级万以内的加减法练习三练习题及答案(三年级数学计算题100道).pdf VIP
文档评论(0)