【问题标题】:Un-named parameter in function definition函数定义中的未命名参数
【发布时间】:2011-12-07 18:40:00
【问题描述】:

我了解函数原型不需要与参数关联的名称。例如:

void foo(int, std::string);

我最近很想知道你可以在函数定义中做同样的事情:

void* foo(void*) { std::cerr << "Hello World!" << std::endl; }

为什么会这样?你怎么能使用未命名的参数?是否有允许这样做的原因(比如可能处理遗留接口或类似的东西)?

【问题讨论】:

    标签: c++


    【解决方案1】:

    如果您不打算使用该参数,那么这是防止编译器警告您的好方法。

    这确实在满足接口的情况下最常出现。例如。您可能正在覆盖基类方法,但对参数没有用处。

    【讨论】:

    • 或者实现发生了变化,不再需要参数,但是你不想破坏 ABI/旧客户端。
    • 另一种常见的情况是回调和/或函数指针。
    猜你喜欢
    • 2022-01-04
    • 2020-02-13
    • 2022-11-01
    • 2020-06-24
    • 2018-05-14
    • 2020-02-16
    • 2021-06-12
    • 2021-06-15
    相关资源
    最近更新 更多