绝对必要的是,编程语言保存类信息(例如,在Objective-C 2字节中)以了解“规范”(例如Integer
:4个字节; String
:8个字节; {)object
?
由于多态性,程序必须在运行时检查对象是否具有正确的type
(对于方法;消息)对吗?
消耗这么多资源?主要是因为你创建了越来越多的类来维持一个合适的结构......
答案 0 :(得分:1)
绝对必要。类的对象(即引用)存储在RAM中。它使用非常小的号码。 f字节,因为它只存储内存地址。
检查不会发生在运行时,它在编译期间发生。这不会导致任何额外的内存使用。创建类,方法不会增加内存使用量,但(如果只是略微增加)会增加编译时间。存储数据(对象/引用,数字,字符串等)使用内存。只有在创建对象时,语言机才会分配和使用内存。
答案 1 :(得分:0)
绝对必要
没有
例如,默认情况下,C ++不存储任何类型信息。每个对象只存储一个pointer to a table of function pointers,以实现虚函数调用。
在C ++中,默认情况下,所有类型检查都在编译时完成。这只会在您开始执行“有趣”的事情时发生变化,例如dynamic_cast
,这需要运行时类型检查,因此输入要存储在对象中的信息。