be about to do表将来:C++一个简单的问题,谁能帮我解决一下,谢

来源:百度文库 编辑:高考问答 时间:2024/04/29 03:33:57
C++ 的类生成实例,实例在内存中为类中的数据类型开辟内存,那函数是否开辟,还是在使用实例中,去找类的函数。????谢谢

变量是每个对象人手一份,但是函数不是每个对象人手一份的,因为没有这个必要。

如何区分是调用的哪个对象的函数?实际上类成员函数的参数表都含有一个隐藏的参数,就是this指针。调用对象内的函数时候,隐藏地把它传递过去。它指示了是调用的哪个类的函数,完全解决问题。这样就不必为每一个类都加上一摸一样的函数代码了。

同样的函数在内存里面只有一份。

C++ 的类生成实例,实例在内存中为类中的数据类型开辟内存,那函数是否开辟,还是在使用实例中,去找类的函数。????谢谢

你说的实例就是对象,对象在内存中占有一定数量的空间,你说的数据类型应该叫字段或数据成员,这是占有一定内存空间的,你说的函数,准确的应该叫方法,也是占有一定空间的。

int i = 0;
int nSize = sizeof(i);//nSize的值应为4

Class myint
{
int i = 0;
void set_value(int value)
{
i = value;
}
}
myint i = new myint();
int nSize = sizeof(i);//nSize的值大于4

你先是定义了一个类,类里面有类函数,你在没有将类实例化前,类是不占任何内存的..在实例化的同时,就初始化了该实例,比如调用了构造函数,还有一些类函数..所以就占内存了,所谓占内存就是一条条命令,函数里包含了大量命令,所以肯定要占内存的吗