一个对象实例化后,成员函数代码占用空间吗?理论上说,类的成员函数代码是所有类所共享的,我不明白,成员函数的代码是谁分配的呢?
-----------------------
如果说成员函数是这个类的所有对象共享,那么就不应该是实例化对象时分配内存空间的。可是类定义本身也是不会分配空间的呀,这就不明白了,这些成员函数代码所占的空间是谁来分配的呢?在哪里分配。何时分配。对象中的数据成员所占的空间一定是这个对象实例化时分配的。这个好理解,不同的对象都有不同的数据成员,互不相干。但是成员函数就不同了,一个类可以实例化很多对象。但是这些对象是共享同一段成员函数的代码呀。请大家进来说说,谢谢。
-----------------------
如果说成员函数是这个类的所有对象共享,那么就不应该是实例化对象时分配内存空间的。可是类定义本身也是不会分配空间的呀,这就不明白了,这些成员函数代码所占的空间是谁来分配的呢?在哪里分配。何时分配。对象中的数据成员所占的空间一定是这个对象实例化时分配的。这个好理解,不同的对象都有不同的数据成员,互不相干。但是成员函数就不同了,一个类可以实例化很多对象。但是这些对象是共享同一段成员函数的代码呀。请大家进来说说,谢谢。
只是参数经过C++编译器的修改,第一个参数总是this
程序加载后.txt节区会直接映射到内存中,不存在动态分配的问题,不管有没有对象实例化,也不管多少个对象实例化,它们都在内存中。