实例化一个类的对象后,她的成员函数装入内存吗?

来源:百度知道 编辑:UC知道 时间:2024/05/06 20:32:55
一个类实例化一个对象后,会装入内存,并产生一个this指针,指向对象的首地址。那么这个对象的成员函数装入内存吗。
如果不装入,一个只有成员函数没有变量的类,其对象岂不是不占内存,不会有this指针了吗。比如class Animal {public: void eat(); void sleep();} Animal am; 在此例中am岂不是不占内存,没有this指针。
如果成员函数装入内存,应该如何装入?首先占多数字节无法解决,其次和以前建栈时变量装入内存,函数不占内存相矛盾。
两种说法似乎都矛盾,该如何解释,请高手指点一下。
函数偏移地址一定是4个字节吗?是不是有成员变量的话,第一个成员变量的地址即为this指针,没有成员变量,会用4个字节载入this指针?

函数本身代码不载入,但函数偏移地址(相对于this)会载入。

程序载入时候,所有的函数都装载到内存的代码区,包括类成员函数,并不是实例化后装入。
装入代码区的函数是不会在实例化后占有对象的空间的,这个和变量是不一样的。

实例化一个类的对象后,她的成员函数装入内存吗? C++ 中,类的实例化对象是指什么?如果确保它的实例化对象只得一个? java 中ArrayList 类中如何向其中添加另外一个ArrayList实例后的对象 java里类成员与实例成员的区别 设计一个有多个构造函数的类,并利用每个构造函数分别实例化一个该类的对象。 用JAVA编写类具有一个静态变量count每当创建一个新的实例对象时count就加一.最后显示类具有多少个实例对象 实例化对象采用MyClass myObject=new MyClass()语法,这个是C#中的语实例化对象的语法 VC++里的对象是指控件还是实例化的类? 为什么java中的直接用Thread类实例化对象的时候必须要这样子? 基类中的protected对象可以被基类的实例访问么?public继承后子类可否访问?