c++类对象共享数据
时间: 2024-05-16 10:18:53 浏览: 9
在C语言中,类对象通常是通过结构体来实现的。要实现类对象之间的数据共享,可以使用静态变量来实现。静态变量在整个程序的生命周期内只会被初始化一次,因此可以用来存储类对象之间需要共享的数据。
以下是一个示例代码,演示了如何使用静态变量实现类对象之间的数据共享:
```c
#include <stdio.h>
// 定义类对象结构体
typedef struct {
int data;
void (*setData)(int);
void (*printData)();
} MyClass;
// 静态变量用于共享数据
static int sharedData = 0;
// 设置数据的函数
void setData(int value) {
sharedData = value;
}
// 打印数据的函数
void printData() {
printf("Shared data: %d\n", sharedData);
}
int main() {
// 创建两个类对象
MyClass obj1, obj2;
// 设置类对象的方法
obj1.setData = setData;
obj1.printData = printData;
obj2.setData = setData;
obj2.printData = printData;
// 设置共享数据
obj1.setData(10);
// 打印共享数据
obj1.printData(); // 输出:Shared data: 10
obj2.printData(); // 输出:Shared data: 10
// 修改共享数据
obj2.setData(20);
// 打印修改后的共享数据
obj1.printData(); // 输出:Shared data: 20
obj2.printData(); // 输出:Shared data: 20
return 0;
}
```
在上述示例中,我们定义了一个名为`MyClass`的类对象结构体,其中包含了一个静态变量`sharedData`和两个方法`setData`和`printData`。通过调用类对象的方法来设置和打印共享数据。因为静态变量被所有类对象所共享,所以无论是通过哪个类对象来设置数据,其他类对象都能访问到相同的数据。