我正在用 C++ 编写代码,有几个关于省略号的问题:
是否可以将类或类指针传入省略号?
基本上我想做的是传入
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/