在下列基类的定义中,有无virtual修饰use成员函数的结...

在下列基类的定义中,有无virtual修饰use成员函数的结果将不同,其原因是______。 当use()为虚拟函数时的程序执行结果: sizeof(A)=8 sized(B)=12 sizeof(C)=16 当use()非虚拟函数时的程序执行结果: sizeof(A)=4 sized(B)=8 sizeof(C)=12 源程序如下: include<iostream.h> class Grandad { public: Grandad():money(10){} int money; virtual void use(){} }; class Father:public Grandad { public: Father():money(100){} int money; void use(){} }; class Son:public Father { public: Son():money(300){} int money; void use(){} }; void main(void) { Grandad A;Father B;Son C; cout<<"sizeof(A)="<<sizeof(A)<<endl; cout<<"sizeof(B)="<<sizeof(B)<<endl; cout<<"sizeof(C)="<<sizeof(C)<<endl; }

时间:2024-01-24 17:59:35

相似题目