C++中可以为引用参数设默认值吗?

void func(int &a = 1);肯定不允许,
如果说是使用void func(QJsonObj &a = QJsonObject())这样的临时变量是否可以?

阅读 3.1k
1 个回答

你的 QJsonObject() 是个将亡值,所以它是个右值,你不能拿左值来引用它。
但用右值引用是可以的,虽然我非常不建议写这样的代码。

int getv()
{
    return 10;
}

int func(int&& a = std::move(getv()))
{
    return a + 1;
}

int main()
{
    std::cout << func() << std::endl;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题