类是通过creat动态占用内存的,通过free释放内存。那定义的过程和函数了,是静态占用内存?还是调用时就占用,调用完毕就自动释放。

解决方案 »

  1.   

    如:int a;     
      ...
      a := sum(1,2);
    转为汇编变成
      push  2
      push  1
      call  sum
      mov   a, eax其实在调动函数这里只占4个字节(32位机子来说),它只保存sum函数的入口地址,调动call时,eip就会指向sum函数体入口并开始执行sum函数指令。当sum函数执行完ret后,程序就会返回call地址继续执行下面指令。类是通过creat动态分配的内存是堆的内存。
    程序的内存占用一般会有.data数据段.code代码段,和堆与栈.类与函数在程序载入时都会占用内存不过.code代码段内存,
      

  2.   

    成员函数表面上是放在类里面描述,但实际上只有一个实例,而且是放在代码段的,创建一个类实例的时候实际上只是分配类变量和VMT表指针的空间,所以调用非静态成员函数自动传递一个实例指针,只不过这个参数是编译器自动生成传递的,表面上看不出。如果函数都像变量那样有多份拷贝只要创建几个实例就可以把机器搞垮