Board logo

标题: 歪谈C++---请总版赏光 [打印本页]

作者: DS    时间: 2006-6-2 15:45     标题: 歪谈C++---请总版赏光

    首先声明本人非C++专业人士,只是觉得既然和语言有关就发在本区,不当之处仅博一笑。
    “语言的发展是一个逐步地进的过程,C++是直接从C语言发展过来的,而C语言是从B语言发展过来的,B语言是BCPL的一个解释性后代,BCPL是Basic CPL。其中最有趣的是CPL中C的由来,由于当时这个语言是剑桥大学和伦敦大学合作开发的,在伦敦的人员加入之前,C表示剑桥,伦敦人员加入之后,C表示Combined组合。还有一种非正式的说法,C表示Christopher,因为Christopher是CPL背后的主要动力。
    最初导致C++诞生的原因是在Bjarne博士等人试图去分析UNIX的内核的时候,这项工作开始于1979年4月,当时由于没有合适的工具能够有效的分析由于内核分布而造成的网络流量,以及怎样将内核模块化。同年10月,Bjarne博士完成了一个可以运行的预处理程序,称之为Cpre,它为C加上了类似Simula的类机制。在这个过程中,Bjarne博士开始思考是不是要开发一种新的语言,当时贝尔实验室对这个想法很感兴趣,就让Bjarne博士等人组成一个开发小组,专门进行研究。
    当时不是叫做C++,而是C with class,这是把它当作一种C语言的有效扩充。由于当时C语言在编程界居于老大的地位,要想发展一种新的语言,最强大的竞争对手就是C语言,所以当时有两个问题最受关注:C++要在运行时间、代码紧凑性和数据紧凑性方面能够与C语言相媲美,但是还要尽量避免在语言应用领域的限制。在这种情况下,一个很自然的想法就是让C++从C语言继承过来,但是我们的Bjarne博士更具有先见之明,他为了避免受到C语言的局限性,参考了很多的语言,例如:从Simula继承了类的概念,从Algol68继承了运算符重载、引用以及在任何地方声明变量的能力,从BCPL获得了//注释,从Ada得到了模板、名字空间,从Ada、Clu和ML取来了异常。
    下面让我们来一起看一下C++历史上的主要事件:
    1983年8月, 第一个C++实现投入使用(所以我喜欢说1983年C++开了天界)
    1983年12月,Rick Mascitti建议命名为CPlusPlus,即C++。
    1985年2月, 第一个C++ Release E发布。
          10月,CFront的第一个商业发布,CFront Release 1.0。
          10月,Bjarne博士完成了经典巨著The C++ Programming Language第一版
    1986年11月,C++第一个商业移植CFront 1.1,Glockenspiel。
    1987年2月, CFront Release 1.2发布。
          11月,第一个USENIX C++会议在新墨西哥州举行。
    1988年10月,第一次USENIX C++实现者工作会议在科罗拉多州举行。
    1989年12月,ANSI X3J16在华盛顿组织会议。
    1990年3月, 第一次ANSI X3J16技术会议在新泽西州召开.
     5月, C++的又一个传世经典ARM诞生。
     7月, 模板被加入。
     11月,异常被加入。
  1991年6月, The C++ Programming Language第二版完成。
     6月, 第一次ISO WG21会议在瑞典召开。
     10月,CFront Release 3.0发布。
    1993年3月, 运行时类型识别在俄勒冈州被加入。
     7月, 名字空间在德国慕尼黑被加入。
  1994年8月, ANSI/ISO委员会草案登记。
  1997年7月, The C++ Programming Language第三版完成。
     10月,ISO标准通过表决被接受
  1998年11月,ISO标准被批准。
   
  接下来让我们一起看一下C++编译器的“第一个”:
  1985年10月,Cfront Release 1.0发布。
  1987年12月,GNU C++发布。
  1988年1 月,第一个Oregon Software C++发布。
     6 月,第一个Zortech C++发布。
  1990年5 月,第一个Borland C++发布。
  1992年2 月,第一个Dec C++发布。
     3 月,第一个Microsoft C++发布。
     5 月,第一个IBM C++发布。”
    以上是在一个说C++历史的文章里复制过来的。到现在C++也经历了二十多年,中间的变迁和有名的编辑器之战就如同一部跌宕起伏的战争诗史。
    西方有句谚语,“有一千个读者就有一千个哈姆雷特。”同样,不同的公司的编辑器就有不同的类库。哦,纯正血统的C++已经很难看见了,到底哪个版本的C++才是王者?Borland已经出售开发部门了,看来剩下的就是标准和微软之争了。
    一个语言的强大与否,是要看支持它的API和类库有多少。VCL、MFC、GCC的库函数太多造就了C++的强大,也使得要想跨平台使用C++就必须再学习另一种编辑器的库函数,大大增加了学习曲线。
    即便是MFC,在.NET推出后,也有很多库函数重写,要想把以前基于MFC6.0的原程序复制到.NET里不加修改就想运行的话简直是恶梦。2002、2003、2005.......还有多少个版本在更改,谁能保证微软不再更改MFC?与此相关的是,如果想品位.NET的强大同时,你就得放下你的C++,从C++.NET开始了解起(如同Basic也不是原汁原味的而是Basic.NET了)。
    我们在期望语言强大的同时,又希望它能更简单更容易上手些。C++太强大,但是想说爱你不容易。曾有人告诉我学C++最少要三年。天!
    不过最近看帖子得知有位总版有五年C++研究历史,那么就让我们一起期待这位总版来高屋建瓴的给大家讲解下C++,告诉我们应该如何科学有效的学习掌握C++(如果这位总版能将自己原创的一个实际项目经验讲解那就是最好了,每次只发贴说一个小程序显示不出您的五年高深)。
     让我们一起期待这位总版的身手吧。

作者: yuhuofei    时间: 2006-6-2 16:01     标题: 歪谈C++---请总版赏光

楼上看来对c++很感兴趣呢。
学c++,主要是学好类,以及指针,
个人意见。
作者: 无条件为你    时间: 2006-6-3 06:57     标题: 歪谈C++---请总版赏光

想成为C++高手,最好是学下MFC。
不知道楼主所指总版是谁,我接触电脑有四五年了,但学C++仅半年多一点。现在我对NET平台的编程环境比较感兴趣。
作者: shellcode    时间: 2006-6-3 10:07     标题: 歪谈C++---请总版赏光

下面引用由无条件为你2006/06/03 06:57am 发表的内容: 想成为C++高手,最好是学下MFC。
不知道楼主所指总版是谁,我接触电脑有四五年了,但学C++仅半年多一点。现在我对NET平台的编程环境比较感兴趣。
VC++和C++还是有很大差别的!! 记得CSDN有人问怎么才能算C++学得差不多了 一大牛说:抛弃使用任何控件,能用C++写出一个记事本,那么他的C++学得已经可以了 看来楼上的还是太菜了
作者: 无条件为你    时间: 2006-6-3 15:05     标题: 歪谈C++---请总版赏光

[这个贴子最后由无条件为你在 2006/06/03 04:08pm 第 2 次编辑]

我只是刚刚入门而已,C++里面的东西太多了,不是每个人都可以学好的。
不知道你是因为哪句话而觉得我太莱,如果你是一个高手,那么来论坛交流一下未偿不可。
抛弃使用任何控件,仅用C++写出一个记事本程序固然厉害,但没有什么优势,反而是在浪费时间。
作者: DS    时间: 2006-6-3 21:08     标题: 歪谈C++---请总版赏光

我是看见楼上总版在意见留言区里的回复,以为总版有五年C++经验,不好意思误会了。
看来总版比较推荐C++.NET了。现在再看侯捷的那些著作的确有助于了解MFC和STL,但是现在是MFC7.0了,很多库函数又变了,又有很大的学习曲线了。从总版回复来看,总版推荐还是用开发环境编程,这样方便直接也无须为底层费心思量了。那总版是否可以在.NET环境下做个完整的C++项目给大家来讲解下?也是我等之幸。
作者: linuxgg    时间: 2006-6-19 11:18     标题: 歪谈C++---请总版赏光

everyone program under Windows?
I like useing G++ for c++,
and gcc gor c.
作者: 雪飘    时间: 2006-7-2 14:32     标题: 歪谈C++---请总版赏光

学vc最好是学sdk编程,mfc这种高度集成华的类是高手用的,对于初学者mfc编程序简单,而改程序难,到最后,知其然,而不知其随意然!呵呵




欢迎光临 黑色海岸线论坛 (http://bbs.thysea.com/) Powered by Discuz! 7.2