Moh*_*mad 33 arrays oop struct terminology object
我想知道每个人的目的是什么.
Tom*_*mmy 31
显然,你可以根据你的编程风格模糊区别,但通常结构是一个结构化的数据.对象是可以执行某种任务的主权实体.在大多数系统中,对象具有某种状态,因此在它们后面有一些结构化数据.然而,精心设计的类的主要功能之一是数据隐藏 - 确切地说,类实现它所做的任何事情都是不透明和不相关的.
由于类可用于表示经典数据结构(如数组,哈希映射,树等),因此您经常将它们视为结构化数据块中的各个事物.
数组是非结构化数据块.在许多编程语言中,数组中的每个单独的东西必须具有相同的基本类型(例如每个都是整数,每个都是字符串或类似)但在许多其他语言中却不是这样.
作为准则:
因此,对象的隐含目的是直接将任务与它们可以操作的数据相关联,并将它们全部捆绑在一起,以便系统的其他任何部分都不会干扰.遵循适当的面向对象设计原则可能首先需要遵守规则,但最终将大规模改进您的代码结构,从而有能力处理更大的项目并与其他人合作.
Don*_*nie 10
一般来说,对象带来了完整的面向对象的功能(方法,数据,虚函数,继承等),而结构只是有组织的内存.结构可能支持也可能不支持方法/函数,但它们通常不支持继承和其他完整的OOP功能.
请注意,我一般说来 ......个别语言可以自由地超出术语但是他们想要.
数组与OO无关.实际上,几乎每种语言都支持阵列.数组只是内存块,通常包含一系列类似的项目,通常可以索引.
OOP中没有"struct"的概念.结构的定义取决于所使用的语言.例如,在C++类和结构中是相同的,但类成员默认是私有的,而struct成员是公共的以保持与C结构的兼容性.另一方面,在C#中,struct用于创建值类型,而class用于引用类型.C具有结构,而不是面向对象.
这又取决于使用的语言.通常,结构用于表示POD(普通旧数据),这意味着它们不指定作用于数据的行为,主要用于表示记录而不是对象.这只是一个约定,并没有在C++中强制执行.
阵列非常不同.数组通常是由整数索引的元素的同类集合.结构是异构集合,其中元素按名称访问.您可以使用数组来表示相同类型的对象集合(例如颜色数组),同时使用结构来表示包含特定对象数据的记录(单个颜色为红色,绿色)和蓝色元素)