CLASS  T{public :int f();
}
请问函数f()的代码是不是每个对象一份,还是编译之后只有一份(和普通函数一样);其实c++,到现在为止,没有一个老师给我讲的明白,那里面好多东西我一直不懂,请问有没有真正明白c++的人,C++是不是在编译上做的技巧太多,,,从c++到c语言,里面很多东西很玄......................................子类继承了父类,程序如何辨认成员,他怎么这么聪明,靠的是什么,是在编译的时候,变量分配层次上????总之,xxx一头雾水

解决方案 »

  1.   

    LZ如果想深入研究C++的话,自己查下相关的书,C++有关这方面的书多得是,不过我个人感觉如果没有好几年的编程经验去弄这个,绝对相当痛苦..曾经想看过The C++ Programming language都已经看不下去了..
      

  2.   

    请问函数f()的代码是不是每个对象一份,还是编译之后只有一份(和普通函数一样);答:f()的代码是每个对象都公用的,类只是编译前的概念,编译之后类的成员函数只有一份代码,并有一个函数地址,当调用成员函数的时候会call fun_address。在创建一个类对象的时候,每个对象的成员变量都会分配不同的内存,而函数则是公用的,因为函数只是代码,并不占用堆栈,函数只是占代码区内存,而且在程序启动的时候,就由PE装载器装载到代码区了