0

编程语言是否绝对有必要保存类信息(例如在Objective-C 2字节中)以了解“规范”(例如Integer:4字节;String:8字节;...)object
由于多态性,程序必须在运行时检查对象是否具有正确的type(用于方法;消息)对吗?
消耗这么多资源?主要是因为您创建了越来越多的类以保持适当的结构......

4

2 回答 2

1

这是绝对必要的。类的对象(即引用)存储在 RAM 中。它使用了一个非常小的编号。f 个字节,因为它只存储内存地址

检查不会在运行时进行,而是在编译期间进行。这不会导致任何额外的内存使用。创建类和方法不会增加内存使用,但(如果只是稍微)会增加编译时间。存储数据(对象/引用、数字、字符串等)使用内存。只有当您创建对象时,语言机器才会分配和使用内存。

于 2012-06-27T10:08:19.663 回答
0

是否绝对必要

不。

例如,默认情况下,C++ 不存储任何类型信息。每个对象只存储一个指向函数指针表的指针,以实现虚函数调用。

在 C++ 中,默认情况下,所有类型检查都是在编译时完成的。只有当你开始做“有趣”的事情时,这种情况才会改变dynamic_cast,这需要运行时类型检查,因此需要将类型信息存储在对象中。

于 2012-06-26T15:09:32.453 回答