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语言!

最佳答案

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