一个函数的形参是一个结构体引用,怎么设置这个形参的默认值
时间: 2024-02-24 10:56:39 浏览: 138
如果一个函数的形参是一个结构体引用,可以为它设置默认值。为了设置结构体引用的默认值,可以定义一个全局的结构体对象,并将其作为函数形参的默认值。例如:
```c++
#include <iostream>
#include <string>
struct Person {
std::string name;
int age;
};
void my_function(Person& p = Person{"John Doe", 18}) {
std::cout << "name: " << p.name << ", age: " << p.age << std::endl;
}
int main() {
Person p1{"Alice", 20};
my_function(p1); // 输出 name: Alice, age: 20
my_function(); // 输出 name: John Doe, age: 18
return 0;
}
```
在上面的示例中,我们定义了一个结构体 `Person`,它包含一个字符串类型的 `name` 成员和一个整型类型的 `age` 成员。然后我们定义了一个名为 `my_function` 的函数,它的形参是一个 `Person` 类型的引用,并且设置了一个默认值 `Person{"John Doe", 18}`。在 `main` 函数中,我们创建了一个 `Person` 对象 `p1`,并将其作为实参调用了 `my_function`,输出了 `p1` 的信息。然后我们再次调用 `my_function`,这次没有传递任何实参,因此使用了默认值 `Person{"John Doe", 18}`,输出了该结构体对象的信息。
需要注意的是,为结构体引用设置默认值时,需要使用大括号 `{}` 来初始化一个临时的结构体对象,这个对象会被绑定到函数形参的引用上。
阅读全文
相关推荐


















