......运算符功能

时间:2016-11-24 07:57:17

标签: c++11

抱歉这个菜鸟问题。我过去一直沉浸在Java中,本课程的书籍并不涵盖C ++。

我必须填写一个函数来向Item对象添加关键字(字符串类型)。该功能的原型如下。

 void addKeywordsForItem(const Item* const item, int nKeywords, ...);

在Java中...将剩余的参数作为String对象返回,我猜测C ++做了类似的事情,但我不知道...的名称所以寻找它是相当困难的。

...被叫什么,它做了什么?

1 个答案:

答案 0 :(得分:2)

  

...被叫什么,它做了什么?

在C ++中有多个地方使用...。您使用它的上下文,称为variadic arguments

标准头cstdarg提供了一种类型和宏,可帮助您从可变参数中提取特定参数。

来自http://en.cppreference.com/w/cpp/utility/variadic/va_start的示例代码:

#include <iostream>
#include <cstdarg>

int add_nums(int count, ...) 
{
    int result = 0;
    va_list args;
    va_start(args, count);
    for (int i = 0; i < count; ++i) {
        result += va_arg(args, int);
    }
    va_end(args);
    return result;
}

int main() 
{
    std::cout << add_nums(4, 25, 25, 50, 50) << '\n';
}