#include <iostream>
#include <string>
// 定义一个简单的结构体
struct InnerStruct {
int value;
std::string name;
};
// 定义复杂结构体
struct ComplexStruct {
int id;
InnerStruct inner;
int arr[5];
};
// 处理函数
void processComplexStruct(const ComplexStruct& cs) {
// 访问和处理只读数据
std::cout << "ID: " << cs.id << std::endl;
std::cout << "Inner value: " << cs.inner.value << ", Inner name: " << cs.inner.name << std::endl;
std::cout << "Array elements: ";
for (int i = 0; i < 5; ++i) {
std::cout << cs.arr[i] << " ";
}
std::cout << std::endl;
}
确保数据完整性和安全性的方法:
- 常量引用传递:通过
const ComplexStruct& cs
的方式传递参数,这确保了函数内部不会修改传入的结构体实例,因为 const
修饰符阻止了对结构体成员的写操作。
- 只读访问:在函数
processComplexStruct
内部,仅对结构体的数据进行读取操作,不执行任何修改数据的语句,从而保证数据完整性。
- 深拷贝问题:如果结构体中有指针成员指向动态分配的内存,在使用过程中要注意避免浅拷贝问题,以防止内存泄漏或数据不一致。不过在当前示例中
ComplexStruct
不包含此类指针成员。