84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
如果派生类的对象调用继承到的成员函数,编译器是在基类中还是在派生类中找被调用的函数。
所以继承是相当于复制了一遍代码到派生类中,还是名义上的继承,代码还是存储在基类当中?
初学C++,求解答。。谢谢。
业精于勤,荒于嬉;行成于思,毁于随。
代码就一份,编译成了机器码放在代码段里,但是函数的地址是存放在虚表里面的,调用的时候从虚表取出来函数的地址,然后call过去。
从程序员角度来看,派生类拷贝了一份函数过去,从编译器角度,它们(非virtual 非static,非override)只存在一份,编译后放在程序的只读区里。
代码就一份,编译成了机器码放在代码段里,但是函数的地址是存放在虚表里面的,调用的时候从虚表取出来函数的地址,然后call过去。
从程序员角度来看,派生类拷贝了一份函数过去,从编译器角度,它们(非virtual 非static,非override)只存在一份,编译后放在程序的只读区里。