A Brief Look at C++ 中文版

本文介绍了C++语言,回答了C++是什么及如何演化发展的问题。阐述了C++标准,包括语言特性和标准库。还提及标准化后编程环境、程序库和工具的发展,以及C++支持多种编程风格,允许使用垃圾自动收集机制等内容。
 

A Brief Look at C++中文版

Bjarne Stroustrup

AT&T Bell Laboratories

Murray Hill, New Jersey 07974

 

[原作者]Bjarne Stroustrup C++的设计者)

[翻译者]Kingofark

[Kingofark的话]:这篇文章诚然已经不新了。但我想,尽可能多的读一读大师们的感思,总不至于是一件坏事情罢。因此还是费力翻译出来(Bjarne Stroustrup大师的英文文章可真是不太容易阅读!),试图截获一丝助人的快乐。

 

 

本文有侧重点的回答了这样两个问题:C++是什么?C++在过去若干年中是如何演化发展的?有经验的C++用户应该把C++当作一个实用工具来看待。本文并无意把C++与其它语言作比较,然而我还是回答了一些特定的问题,这些问题经常被Lisp程序员问到。

 

1. 介绍

像所有现存的程序设计语言一样,C++在过去若干年中不断发展和变化着。对我而言,C++的发展速度是极为缓慢的;但发展不可避免,它体现着C++本身在内部机制方面自然的进化,也是对千千万万C++用户之使用心得的一种深思熟虑的回应。对于许多积极使用C++的人来说,这种发展慢得令人失望和丧气。对于一些不经常使用C++的人来说,这种发展好像一种不可预见的行为,晃晃悠悠滑入了未知。而对于其他人来说,C++只是一种虚无飘渺、对其知之甚少的东西,并且伴随着极其多的谣言围绕着它。

不管你如何看待C++,它与第一次出现的时候相比,已经有了相当可观的发展。举手例子来说明:一个简单的函数,其功能是对一个container排序,并计算排在DahlNygaard之间的元素的个数:

template<class C> int cnt(C& v)

{

sort(c.begin(),v.end());

C::iterator d = find(v.begin(), v.end(), "Dahl");

return count(d, find(d, v.end(), "Nygaard"));

}

一个container可以看作是从begin()end()的一系列元素之集合。在一个container中,用iterator来标识每一个元素。

只要container遵循C++标准库的一般原则,并且其元素可以与string literals作比较,那么这个template函数就可以如上所述正常运作。例如:

vector<char*> v; // C风格的字符串vector

list<string> lst; // C++中的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值