#include <iostream> using namespace std; class Test { private: int a; static int sum; public: Test(int i); void display(); }; //类的实现部分 Test::Test(int i) { a=i; sum+=a; } void Test::display() { cout<<"a="<<a<<", sum="<<sum<<endl; } int Test::sum=0; int main() { Test x(10), y(20), z(30); x.display(); y.display(); z.display(); cout<<"三个对象所占的空间大小依次为: "<<sizeof(x)<<", "<<sizeof(y)<<", "<<sizeof(z)<<endl; cout<<endl; return 0; } 问题: 1、本程序中的数据成员sum与a相比,有什么不同? 2、语句int Test::sum=0; 实现的功能是什么? 3、从运行结果来看,为什么三个对象调用成员函数display()时输出的sum值是否相同?从中你能得出什么结论? 4、如何解释三个对象所占的内存空间大小?
时间: 2024-01-03 12:05:32 浏览: 30
1、数据成员a是每个对象独有的,它的值不同;而数据成员sum是所有对象共有的,它的值会随着对象的创建而叠加。
2、语句int Test::sum=0; 是在类外部对静态数据成员sum进行初始化,将其初始值设为0。
3、三个对象调用成员函数display()时输出的sum值相同,都为60。这说明静态数据成员sum是所有对象所共有的,它的值会随着对象的创建而叠加。
4、三个对象所占的内存空间大小依次为:4字节、4字节、4字节。其中,4字节是因为数据成员a占用了4字节的空间,而没有其他额外的空间开销。因为每个对象都有一个独立的数据成员a,所以它们所占的空间大小相同。而静态数据成员sum不会影响对象的内存空间大小,因为它是所有对象共有的,只需要单独存储一份即可。
相关问题
补全程序,并写出程序运行结果。 #include <iostream> using namespace std; class Class { public : Class ( int...
补全程序如下:
```
#include <iostream>
using namespace std;
class Class {
public:
Class(int a, int b, int c) {
x = a;
y = b;
z = c;
}
void print() {
cout << "x: " << x << endl;
cout << "y: " << y << endl;
cout << "z: " << z << endl;
}
private:
int x;
int y;
int z;
};
int main() {
Class obj(1, 2, 3);
obj.print();
return 0;
}
```
程序运行结果为:
```
x: 1
y: 2
z: 3
```
程序定义了一个名为 Class 的类,该类包括有参构造函数和一个 print() 函数,构造函数用于对类的私有成员变量进行初始化,print() 函数用于输出类的私有成员变量。在主函数 main() 中,创建了一个名为 obj 的 Class 类对象,构造函数传入三个整数参数 1、2 和 3。最后调用 obj 对象的 print() 函数,输出 obj 对象的私有成员变量 x、y 和 z 的值。
#include<iostream>using namespace std;
这是一个C++的代码片段,它包含了iostream头文件和使用了命名空间std。iostream头文件提供了输入输出流的功能,而using namespace std;语句则是为了方便使用std命名空间中的函数和对象,避免每次都需要写std::。
以下是一个简单的示例代码,展示了如何使用iostream头文件和命名空间std来输出一句话:
```cpp
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World!" << endl;
return 0;
}
```
这段代码会输出"Hello, World!",endl是一个特殊的控制符,用于在输出流中插入一个换行符。
相关推荐
![text/plain](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)