闲聊C++与面向对象思想

艾伦·凯曾说,“I made up the term object-oriented, and I can tell you I did not have C++ in mind.”(“我发明了术语‘面向对象’,可以告诉您我没有C++”)。

今天看到这句话,激发了笔者写一篇文章聊聊C++与面向对象思想的关系。

正统的面向对象思想

艾伦·凯(Alan Kay)是计算机科学家,是面向对象编程(Object-Oriented Programming,简称OOP)的发明者。他在1960年代和1970年代的工作对个人计算机和现代编程概念产生了深远影响。

艾伦·凯对面向对象编程的理解强调以下几个核心概念:

  1. 封装:对象应该将其状态和行为封装起来,隐藏内部实现的细节,只暴露有限的接口与外界交互。而C++提供friend等机制破坏了内部的隐藏。

  2. 消息传递:对象之间的交互应该通过发送消息来完成,而C++将这些消息理解成调用其他对象的方法。

  3. 动态绑定:系统在运行时决定哪个代码将被执行,而不是像C++这样在编译时固定下来。

  4. 原型继承:对象可以通过克隆现有的对象(原型)来创建新对象,并可能在此基础上进行修改,这与C++基于类的继承是不同的。

因此,艾伦·凯的这句话认为C++并没有完全捕捉到他最初提出的面向对象编程的精

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值