如何允许方法参数为空

  • 本文关键字:参数 方法 何允许 c++
  • 更新时间 :
  • 英文 :


我是c++新手,来自c#;

要实现我的预期目标,我只需执行以下命令
public void MyMethod(int? value) {
if(value is null) {
// Do something
} else {
// Do something else
}
}

如果可能的话,我如何在c++中实现这个结果?

您可以对std::optional执行此操作。

void MyMethod(const std::optional<int>& option) {
if(option.has_value()) {
// Do something with the int option.value()
} else {
// Do something else with no value.
}
}

std::nullopt是在不需要值时传递的值。MyMethod(std::nullopt);

或者,如果您希望能够完全省略参数并说MyMethod(),那么您可以将参数默认为std::nullopt

void MyMethod(const std::optional<int>& option = std::nullopt) {

这听起来像是重载的工作:

void f() {
// do something for no argument
}
void f(int i) {
// do something with I
}

最新更新