我正在阅读一些教程并编写代码,但遇到了一个简单的奇怪函数方法,一个带只是参数类型的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)
}
答案 0 :(得分:3)
你可以简单地传递一个整数。它没有使用它,但在这种情况下并不重要。
sa.display(0);
如果您打算在子类中重载此函数,这种方法在实际情况下可能会有用,实际上将使用此整数。
答案 1 :(得分:3)
参数的名称确实是可选的。如果参数不在函数体中使用,则声明void display(int)
完全正常。
为了调用此方法,只需将int
作为参数传递。
答案 2 :(得分:2)
name
仅在使用时才需要 。由于parameter
中未使用method
,因此不提供名称不会导致任何问题。