c++史前时代与带类的C

c++史前时代

1979年,Bjarne Stroustrup,中文名挺拗口的,通常称之为BS,在贝尔实验室开始开发C++语言。为什么要发明新的语言呢?这涉及到作者之前的经历。那时,BS在剑桥读博士学位,研究大型软件的开发。BS用Simula开发了个模拟器,但它的运行速度很慢,BCPL的运行效率是很高,但很低级,开发效率低。因此BS产生发明一个新语言的念头。

下面是BS的一些观点:

*离开剑桥后,我发誓:没有合适工具的情况下绝不去冲击一个问题。

*我的世界观影响c++:bs是实用主义者,硕士是纯数学与应用数学,数学应该是解决问题的工具,对计算机的兴趣也是务实的。长期爱好的历史,喜欢亚里士多德胜过柏拉图。

*c++的许多设计决策源于我对强迫个人按某种特定方式行事的极度厌恶。尊重人群而不尊重个人实际上是什么也不尊重。

*对文学的热爱增强了作者的认识:仅凭理论和逻辑做决策是没有希望的。人的代价总是最高的,不同的人按不同的方式做事,容忍和接受这种情况是我最愿意的事情。

*我喜欢怀疑论者,而不是“真诚的信徒”

*我认为科学家和知识分子的责任是保证他们的思想可以被公众接受,从而对社会有用,而不是为了做出一些专家的玩物。

*人的思维方式是如此丰富多彩,c++被有意设计成支持多种多样的风格。

*一种程序设计语言只是世界中微乎其微的一部分,不要看的太重,重要的是要维持自己的幽默感,c++在众多语言中具有俏皮话和玩笑的语言之一,者并不是偶然。

带类的C

*c++的class是用户自定义类型,为什么我们不直接称他为type呢,选用class的原因是我不想发明新术语,simula的术语都很合适。

*栈上创建对象比堆上创建对象的效率高的多。

*In particular,Steve Johnson and Dennis Ritchie affirmed that C was intended to have name equivalence rather than structural equivalence.For example:

struct A{intx,y;};

struct B{intx,y;};

defines two incompatible types A and B.

我喜欢名字等价胜过结构等价,因为我觉得这是最安全和最清晰的模型

*为什么c++的this是指针而不是引用,为什么是this而不是self?因为那时c++还没有引用机制,c++是从simula而不是smalltalk那里借用的术语。

*我一直这样的观点:人们过分关注语法问题而损害了类型问题。

时间: 2024-10-22 06:39:51

c++史前时代与带类的C的相关文章

c#自带类实现的多文件压缩和解压

c#自带的System.IO.Compression命名空间下的压缩类实现的多文件压缩和解压功能,缺点是多文件压缩包的解压只能调用自身的解压方法,和现有的压缩软件不兼容.下面的代码没有把多文件的目录结构加进去 using System; using System.Collections.Generic; using System.IO; using System.IO.Compression; namespace Test.Zip { class CompressHelper { /// <su

信息架构之史前时代

计划2015年每天写一篇文章 由于文章编辑器的效率实在太低,所以选择演示文稿导出成图片 部分内容直接使用我在曾经北京航空航天大学开设的<移动终端用户交互工程>的演示文稿,同样效率原因因而直接贴图片 提问请移步 http://weibo.com/p/1001603796142193256240 计划2015年每天写一篇文章 由于文章编辑器的效率实在太低,所以选择演示文稿导出成图片 部分内容直接使用我在曾经北京航空航天大学开设的<移动终端用户交互工程>的演示文稿,同样效率原因因而直接贴

C++程序设计之四书五经(上篇)

C++程序设计之四书五经(上篇)   [文章信息]   作者: 荣耀 时间: 2004-08-26 出处: royaloo 责任编辑: 方舟   [文章导读]   C++是一门广泛用于工业软件研发的大型语言.它自身的复杂性和解决现实问题的能力,使其极具学术研究价值和工业价值 [正文]         C++是一门广泛用于工业软件研发的大型语言.它自身的复杂性和解决现实问题的能力,使其极具学术研究价值和工业价值.和C语言一样,C++已经在许多重要的领域大获成功. 然而,一个不可否认的现实是,在低阶

C++程序设计之四书五经[转自2004程序员杂志]--上篇

C++程序设计之四书五经 作者:荣耀 C++是一门广泛用于工业软件研发的大型语言.它自身的复杂性和解决现实问题的能力,使其极具学术研究价值和工业价值.和C语言一样,C++已经在许多重要的领域大获成功.然而,一个不可否认的现实是,在低阶程序设计领域,C++挤压着C同时也在承受着C的强烈反弹,而在高阶程序设计领域,Java和C#正在不断蚕食着C++的地盘.也许C++与C合为一体永远都是一个梦想,也许Java和C#的狂潮终将迫使C++回归本位— 回到它有着根本性优势的开发领域:低级系统程序设计.高级大

大数据十年回顾(1):大数据史前的数据库发展

是当前最热的技术之一,这十年它经历了哪些阶段?每个阶段分别创造和发展了什么?未来大数据又将朝着哪些方向继续前行?在这篇文章里,我们沿大数据发展时间线,从产品.行业.技术多角度讨论其发展脉络,究其发展承其脉络大家可以学习.借鉴.并最终推测未来大致走向. ? 引子 我一直认为大数据中文社区里面不乏各类技术大牛所著深度架构干货,同时亦不乏各类技术的总监 /VP/CXO 高屋建瓴指点行业江山的激情文字,所缺的往往是站在技术.产品.社区.市场交汇点的思考点滴.有如我经常在我部门中所说,中国当前不乏各类云计

[2016-04-23][C++类模板的一些事儿]

定义(关于类模板和模板类) 类模板:在类里面使用了 模板类型,即满足如下结构就是类模板 template <typename T> class Array{ T* p; } ; 模板类:类模板实例化之后的对象就叫模板类 使用 实例化必须指定类型, 通过 类名后面加上 <类型> 来指明类型 Array<int> a; 注意 没有指定类型是不能实例化的, 没有实例化的变量是不能使用的!!! template <typename T> T a; cin>&g

从全景推出微图网看IP时代下图片价值的激增

奉行拿来主义的中国互联网早已形成全民免费的体验习惯,没有哪一家互联网公司敢于强制对其用户收费,但IP时代来临,不向用户收费就需要自己承担版权成本,这两年在线音乐公司背负的版权成本愈发高昂,如何将音乐版权变现似乎已成"世纪性"难题,在这一问题上,2B市场的图片内容的版权变现可能相对要容易一些,而以全景视觉为代表的企业正在做着有效尝试. 在IP时代,版权类公司价值凸显,全景视觉转型图片电商 如今各大互联网公司背负的高昂版权成本其实是在为过去的互联网免费时代买单.这两年,市场对于音乐.文学.

[Objective-c 基础 - 1.1] OC类

Obj-C中没有包得概念,使用前缀进行区分 自带类用NS开头命名 关键字使用@开头 A. 第一个OC程序 1. 导入Foundation框架的主头文件 #import <Foundation/Foundation.h> 自动过滤重复引入的文件 2. 源代码和头文件 (1) .h : 类的声明文件 (2) .m : 类的实现文件 3.使用终端编译链接OC程序 例如:编译链接 02OC.m cc 02OC.m -framework Foundation 系统默认带的是C函数库,必须加上 frame

C++拾遗(五)——类

类是 C++ 中最重要的特征.C++ 语言的早期版本被命名为“带类的 C(Cwith Classes)”,以强调类机制的中心作用.随着语言的演变,创建类的配套支持也在不断增加.语言设计的主要目标也变成提供这样一些特性:允许程序定义自己的类型,它们用起来与内置类型一样容易和直观. 类的定义和声明 类背后蕴涵的基本思想是数据抽象和封装. 数据抽象是一种依赖于接口和实现分离的编程(和设计)技术.类设计者必须关心类是如何实现的,但使用该类的程序员不必了解这些细节.相反,使用一个类型的程序员仅需了解类型的