This question already has answers here:
Structure of a C++ Object in Memory Vs a Struct
(8个答案)
6年前关闭。
我很久以前就有这个疑问。点运算符首先在C中的struct中使用。是Class的概念还是基于C中struct的Class设计?实际上,我对此非常怀疑,只是还没有看到任何官方文件。
编辑:我要问的是,创建类语法(在C ++中)的想法是否来自C中的struct,而不是为什么C不是OOP语言!
(8个答案)
6年前关闭。
我很久以前就有这个疑问。点运算符首先在C中的struct中使用。是Class的概念还是基于C中struct的Class设计?实际上,我对此非常怀疑,只是还没有看到任何官方文件。
编辑:我要问的是,创建类语法(在C ++中)的想法是否来自C中的struct,而不是为什么C不是OOP语言!
最佳答案
1号
虽然语法大致相似,但这只是语法。 “类”和“对象”的概念比C早了几年2。
Simula是在60年代开发的:
Simula是两种仿真编程语言的名称,Simula I和Simula 67于1960年代在奥斯陆的挪威计算中心开发。
Simula 67引入了对象,类,继承和子类,虚拟方法,协程,离散事件模拟以及垃圾收集功能。在Simula衍生物中引入了子类型化。
Simula被认为是第一种面向对象的编程语言。顾名思义,Simula专为进行模拟而设计,该领域的需求为当今面向对象语言的许多功能提供了框架。
Simula的影响通常被低估,并且Simula类型的对象在C ++,Java和C#中得以重新实现。 C ++的创建者Bjarne Stroustrup承认Simula 67对他开发C ++的影响最大。
1尽管可以用C模拟某些概念,但这并不意味着Object-Oriented Programming源自C结构或实现。
2 Simula 67在1968年正式标准化,而"the most creative period" in C development直到1972年添加了对结构的支持。实际上的C早期标准(“ C编程语言”)直到1978年才发布。
10-04 20:21