关于类公共类型函数的内存

时间:2013-01-09 00:12:16

标签: class function object memory public

当使用类的构造函数创建对象时,它使用并存储一些内存空间。 创建更多对象会占用更多空间。我的问题是:如果该类有许多公共类型函数,逻辑上会占用更多空间,但是当创建具有许多公共类型函数的同一类的更多对象时,这些函数是否将单独创建并使用更多空间?我要问的是例如:class有3个公共类型函数,当创建1个对象时它将使用类似1 * 3x内存的东西,但是当创建更多对象(10)时它将使用10 * 3x内存,或者只有10+ 3?所以,如果我是正确的,当对象需要使用许多公共类型函数,并且有许多相同的对象时,也许最好将这些公共函数存储在父类中,这样会花费更少的内存?

1 个答案:

答案 0 :(得分:1)

只有对象的数据成员才能使用内存空间。函数/方法总是在所有对象之间共享。使用一些内存空间的唯一方法是虚拟方法,但空间成本通常只为每个类型支付一次。

如果在父类或子类中定义了一个方法,它们将占用与可执行代码相同的内存量。此外,在两种情况下都以相同的方式处理参数,因此在父类或子类中定义方法的速度不会更快或更慢。