【发布时间】:2020-10-13 19:09:19
【问题描述】:
我正在尝试使用 std::optional ,如下面的代码所示。
#include <iostream>
#include <optional>
#include <string>
struct Animal {
std::string name;
};
struct Person {
std::string name;
std::optional<Animal> pet;
};
int main() {
Person person;
person.name = "John";
if (person.pet) {
std::cout << person.name << "'s pet's name is " <<
person.pet->name << std::endl;
}
else {
std::cout << person.name << " is alone." << std::endl;
}
}
我想知道如何将值传递给作为结构的可选参数 pet。 我试过做
person.pet = std::make_optional<Animal>("Bru");
和
person.pet = "Bru"
但是这两个都不起作用。我应该如何将值传递给我的参数?
【问题讨论】:
-
为这两个
structs 定义一个构造函数可能会有所帮助。