c++编写一个函数swapstruct(),实现交换两个结构体变量的功能。编写主函数验证函数swapstruct()的功能,要求使用引用传递参数。
时间: 2024-10-24 09:15:41 浏览: 25
使用pybind11封装C++结构体作为参数的函数实现步骤
在 C++ 中,你可以创建一个名为 `swapStruct` 的函数,它接受两个结构体变量作为引用参数,并通过交换它们的成员来完成交换操作。这里是一个简单的例子,假设我们有一个名为 `Person` 的结构体,包含 `name` 和 `age` 两个成员:
```cpp
#include <iostream>
using namespace std;
// 定义 Person 结构体
struct Person {
string name;
int age;
};
// swapStruct 函数,接收两个 Person 类型的引用并交换其内容
void swapStruct(Person& person1, Person& person2) {
// 临时存储 person1 的数据
string tempName = person1.name;
int tempAge = person1.age;
// 更新 person1 和 person2 的值
person1.name = person2.name;
person1.age = person2.age;
// 将 temp 存储的数据赋给 person2
person2.name = tempName;
person2.age = tempAge;
}
int main() {
// 创建两个 Person 对象
Person p1 = {"Alice", 25};
Person p2 = {"Bob", 30};
cout << "Before swapping:\n";
cout << "p1: " << p1.name << ", " << p1.age << endl;
cout << "p2: " << p2.name << ", " << p2.age << endl;
// 调用 swapStruct 函数
swapStruct(p1, p2);
cout << "\nAfter swapping:\n";
cout << "p1: " << p1.name << ", " << p1.age << endl;
cout << "p2: " << p2.name << ", " << p2.age << endl;
return 0;
}
```
在这个例子中,`swapStruct` 函数通过引用传递参数,所以在主函数中直接修改了原始 `p1` 和 `p2` 的内容。
阅读全文