c ++只带参数类型的void

时间:2014-05-12 11:14:57

标签: c++ void

我正在阅读一些教程并编写代码,但遇到了一个简单的奇怪函数方法,一个带只是参数类型的void函数不是实际参数,如:" void foo(int)&# 34 ;.

我知道如果我制作的代码类似" void foo(void)"这意味着它绝对不允许我传递参数,但是如果参数只是键入' 那就不知道是什么意思。' 它甚至不是函数声明,但函数定义

首先,我认为这可能意味着我可以传递任何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)
}

3 个答案:

答案 0 :(得分:3)

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

sa.display(0);

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:2)

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