如果你用sizeof()作用在这令各class上,就会发现,它们大小是一样的,B不会因为多了一个方法而导致其size变大。(当然,你如果将sayHello用virtual申明为虚方法,那么编译器会在你的类前面加一个所谓的VTable,其实就是一个32位指针,会导致你的class变大的,如果你用virtual修饰sayHello,那么class B就会比class A大4个bytes)另外,对于类里面的方法,只要在程序里定义了,那么在运行期不管你有没有生成这个类的实例,其实这些方法代码已经存在了,甚至我们可以用一些“脏”代码来调用: #include <iostream> class A int main() pa = NULL; //注意这里,并不会导致下面的语句出错,在vc和gcc里都pass return 0; |
正在阅读:《编程高手箴言》读后(4)《编程高手箴言》读后(4)
2004-04-08 14:39
出处:CSDN
责任编辑:sdq
键盘也能翻页,试试“← →”键