【问题标题】:c++ void with just parameter typec++ void 只有参数类型
【发布时间】:2014-06-29 17:24:08
【问题描述】:

我正在阅读一些教程并编写代码,但遇到了一个简单的奇怪函数方法,即具有 仅参数类型而不是实际参数的 void 函数,例如:“void foo(int)”。

我知道如果我编写像“void foo(void)”这样的代码,这意味着它绝对不允许我传递参数,但不知道如果参数有 意味着什么只需输入'int'。它甚至不是一个函数声明,而是一个函数定义

首先,我认为这可能意味着我可以传递任何 int 变量,但事实并非如此。如果有人知道这个,你能教我这是什么吗?感谢您的阅读和您的时间。代码如下:

struct SA{
void display()  { cout << "struct sA without int" << endl; }
void display(int) { cout << "Struct sA" << endl; } // this is it. I have no idea what means putting just type int. I can't even use this function
};

int main(){
    SA sa;
    sa.display(); // I had no problem to call display() but have no idea how to use diplay(int)
}

【问题讨论】:

  • void display(int param) 也许??
  • 感谢您的评论πάντα ῥεῖ!不知何故,它只是类型而不是变量,但现在我认为避免这种方式并使用你提到的参数绝对是好的。感谢您的快速回复!

标签: c++ void


【解决方案1】:

你可以简单地传递一个整数给它。它不使用它,但在这种情况下这并不重要。

sa.display(0);

如果您打算在子类中重载此函数,这种方法在实际情况下可能很有用,其中实际使用此整数。

【讨论】:

  • 非常感谢沃洛佳!我尝试放置一个 int 变量,但不知道我可以只传递一个整数值。谢谢!我可以学到新东西!我会在我能做到的几分钟后选择这个作为答案!
【解决方案2】:

参数的名称是可选的。声明void display(int)如果参数不会在函数体中使用是完全正常的。

要调用此方法,只需将任何int 作为参数传递。

【讨论】:

  • 谢谢阿奇!所以,在函数体中不使用是完全正常的!我也会宣传你的答案!谢谢!!
  • 另外请注意,如果您确实为这个输入参数定义了一个名称,例如void display(int param),那么一些代码检查工具会抱怨您定义了一个变量param,但之后从未使用它。
  • 哦,我明白了!感谢您的进一步建议!我不知道这种有用的技术!谢谢!!!
【解决方案3】:

name 仅在使用时才需要。由于parameter 没有在method 中使用,因此不提供名称不会导致任何问题。

【讨论】:

  • 你好,拉基布尔!谢谢你们的快速响应!所以,我知道我可以这样说,除非我想使用它,否则没关系。谢谢!
猜你喜欢
  • 2010-12-19
  • 2015-10-03
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 2022-10-31
  • 2021-04-18
  • 1970-01-01
  • 2021-10-22
相关资源
最近更新 更多