You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何该C++函数未使用参数?带参数的写法是否可行?

带参数的getUserInput()函数是否可行?

我在学习C++时看到一个无参数的getUserInput()函数:

int getUserInput()
{
    std::cout << "Enter an integer ";
    int input{};
    std::cin >> input;

    return input;
}

想问问改成下面带参数的形式是否可行?

int getUserInput(int input)
{
    std::cout << "Enter an integer ";
    std::cin >> input;

    return input;
}

回答:

语法上这个写法能通过编译,但从设计逻辑来说完全没必要,甚至存在冗余问题:

  • 你传入的input参数会被函数内的std::cin >> input直接覆盖,不管调用时传什么初始值,最终都会被用户输入的内容替换,这个参数完全起不到作用。
  • 该函数的核心职责是获取用户输入并返回结果,不需要外部传入任何值,带参数的写法反而会误导调用者,让别人误以为这个参数有实际用途。

如果想让函数更实用,不如改成支持自定义提示语的版本,比如:

int getUserInput(const std::string& prompt)
{
    std::cout << prompt;
    int input{};
    std::cin >> input;
    return input;
}

调用时可以写getUserInput("请输入一个整数: "),既保持了函数的单一职责,又提升了灵活性。


内容的提问来源于stack exchange,提问作者Zaku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 18:10:50