在给定的函数中,我有一个变量,比如说int。我想把它传递给另一个class.let,说是
function(int a, int b, int c);
我只想传递第三个论点,而忽略前两个。
,即:,我只想传递int c,作为function (c),它只是将它传递给第三个参数。我不想像function(0,0,c);那样通过它..。有没有可能。请给我建议。
发布于 2018-02-22 07:28:37
看来你想做功能重载。就像这样-
function(int a, int b, int c);
function(int c);在第二个函数中,您可以使用a和b的适当值调用第一个函数。
发布于 2018-02-22 07:28:42
您可以为您的函数设置默认值:
void function(int c, int a = 0, int b = 0);或者你可以让你的功能超载:
void function(int a, int b, int c) {
//implementation 1
}
void function(int c) {
function(0, 0, c);
}在这两种情况下,您都可以这样使用它:
function(c);注意事项:当我们使用默认值时,在函数定义中,带默认值的参数必须是最后一个,例如:
void function(int a = 0, int b = 0, int c)不是有效的格式。
发布于 2018-02-22 07:41:09
当您遇到function(c)等同于function(0, 0, c)的情况时,它听起来就像是一个糟糕的设计。通常,可以对从结尾开始的参数使用默认参数值。如果function(c)等同于function(c, 0, 0),这将是有意义的。
您可以通过将函数声明为:
void function(int c, int a = 0, int b = 0);我认识到,您可以通过重载function来实现您的目标,如:
void function(int c)
{
function(0, 0, c);
}但对我来说,这仍然是一个很差的界面。
https://stackoverflow.com/questions/48921730
复制相似问题