c++ - 传递不同类型的可变数量的参数 - C++

标签 c++

我正在用 C++ 编写代码,有几个关于省略号的问题:

  1. 是否可以将类或类指针传入省略号?

  2. 基本上我想做的是传入char*class 类型的可变数量的参数。我目前正在使用省略号并试图弄清楚如何在类里面通过。如果省略号在这里不适用,有哪些可用选项?

我想让用户使用 func(params 1, params2, ...) 直接调用函数,而不是在传递 vector 或数组之前先明确地将参数分配给 vector 或数组作为函数的参数。

最佳答案

您应该考虑使用可变参数函数(C 风格)是一个危险的缺陷。 如果传递给函数的对象与等待的类型不匹配,或者如果您没有输入准确数量的等待参数,那么您基本上在运行时会发生剧烈崩溃。

Bjarne Stroustrup C++ 深度系列 - C++ 编码标准 - Herb Sutter 和 Andrei Alexandrescu 的 101 条规则、指南和最佳实践,第 98 章:不要使用可变参数(省略号)/p>

我非常赞成@tenfour 的提议:

  • 使用包含所有参数的 std::vector

关于c++ - 传递不同类型的可变数量的参数 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3555583/

相关文章:

c++ - Mac OS X 上的 Emacs 24 和 GDB 6.3

c++ - 为什么我们在 pthread_create 中将函数参数作为 void* 传递?

c# - Do-While循环的可接受用法?

c++ - curl_easy_perform() 是同步的还是异步的?

c++ - 从两个不同类继承的非虚拟基类的访问成员

c++ - 为什么指向指针的指针是一个矩阵?

c++ - char[](c-string) 的初始化标准

c++ - CMake:生成或提取共享库所需的 header

c++ - 使用递归进行质因数分解

使用自定义键的 C++ map 插入失败