首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将单个参数传递给多参数函数

问将单个参数传递给多参数函数
EN

Stack Overflow用户
提问于 2018-02-22 07:24:37
回答 4查看 92关注 0票数 1

在给定的函数中,我有一个变量,比如说int。我想把它传递给另一个class.let,说是

function(int a, int b, int c);

我只想传递第三个论点,而忽略前两个。

,即:,我只想传递int c,作为function (c),它只是将它传递给第三个参数。我不想像function(0,0,c);那样通过它..。有没有可能。请给我建议。

EN

回答 4

Stack Overflow用户

发布于 2018-02-22 07:28:37

看来你想做功能重载。就像这样-

代码语言:javascript
复制
function(int a, int b, int c);

function(int c);

在第二个函数中,您可以使用a和b的适当值调用第一个函数。

票数 2
EN

Stack Overflow用户

发布于 2018-02-22 07:28:42

您可以为您的函数设置默认值:

代码语言:javascript
复制
void function(int c, int a = 0, int b = 0);

或者你可以让你的功能超载:

代码语言:javascript
复制
void function(int a, int b, int c) {
    //implementation 1
}

void function(int c) {
    function(0, 0, c);
}

在这两种情况下,您都可以这样使用它:

代码语言:javascript
复制
function(c);

注意事项:当我们使用默认值时,在函数定义中,带默认值的参数必须是最后一个,例如:

代码语言:javascript
复制
void function(int a = 0, int b = 0, int c)

不是有效的格式。

票数 2
EN

Stack Overflow用户

发布于 2018-02-22 07:41:09

当您遇到function(c)等同于function(0, 0, c)的情况时,它听起来就像是一个糟糕的设计。通常,可以对从结尾开始的参数使用默认参数值。如果function(c)等同于function(c, 0, 0),这将是有意义的。

您可以通过将函数声明为:

代码语言:javascript
复制
void function(int c, int a = 0, int b = 0);

我认识到,您可以通过重载function来实现您的目标,如:

代码语言:javascript
复制
void function(int c)
{
   function(0, 0, c);
}

但对我来说,这仍然是一个很差的界面。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48921730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档