“类不是对象”是什么意思?

问题描述 投票:2回答:2

从GoF书中:

原型对于像C ++这样的静态语言特别有用,其中类不是对象,几乎没有类型信息在运行时可用。在像Smalltalk这样的语言中,它的重要性降低了或目标C,它们提供了相当于原型(即类对象),以创建每个类的实例。这种模式是建立的进入基于原型的语言,例如Self [US87],其中所有对象通过克隆原型进行创建。

“类不是对象”是什么意思?

不是总是这样吗?

类成为对象意味着什么?

c++ oop design-patterns prototype
2个回答
6
投票

在某些语言中,当您声明一个类时,语言运行时会在内存中创建一个对象来表示该类及其属性;然后您可以在该类对象上调用方法以找出该类的属性或创建该类的对象,依此类推。

C ++没有该功能(主要是因为C ++旨在最大程度地减少运行时开销);没有对象代表该类。 (最接近的是RTTI的type_info对象,但这实际上只是一个包含有关类的某些信息的对象,而不是类本身的完整表示))


1
投票

类与原型对象之间的讨论/差异很多,并且很大程度上取决于语言所允许的内容,以及它定义和操作对象的难易程度/灵活性。

© www.soinside.com 2019 - 2024. All rights reserved.