有如下C++代码,请分析输出值的原理 #include <iostream> using namespace std; class A { int v1,v2; }; class B:public A { int v3; }; void main() { A x; B y; cout<<sizeof(x)<<endl; cout<<sizeof(y)<<endl; }
时间: 2024-03-18 21:39:28 浏览: 111
vc++2008编译不了#include<iostream.h>头文件
4星 · 用户满意度95%
这段代码的输出是:
```
8
12
```
对于第一个`sizeof(x)`,输出的是`A`类的对象`x`的大小,而`A`类中只有两个`int`类型的成员变量,每个`int`类型占4个字节,所以`sizeof(x)`的值为8。
对于第二个`sizeof(y)`,输出的是`B`类的对象`y`的大小。`B`类是`A`类的子类,它继承了`A`类的两个`int`类型的成员变量,再加上自己的`int`类型成员变量`v3`,所以`sizeof(y)`的值为12。注意,由于`B`类继承了`A`类的成员变量,所以在计算`sizeof(y)`时并不会将`A`类的成员变量重复计算。
阅读全文