【发布时间】:2011-02-15 13:33:37
【问题描述】:
我可以在 C++ 中执行此操作吗(如果可以,语法是什么?):
void func(string* strs) {
// do something
}
func({"abc", "cde"});
我想将数组传递给函数,而不是将其实例化为变量。
【问题讨论】:
标签: c++
我可以在 C++ 中执行此操作吗(如果可以,语法是什么?):
void func(string* strs) {
// do something
}
func({"abc", "cde"});
我想将数组传递给函数,而不是将其实例化为变量。
【问题讨论】:
标签: c++
我认为你不能在 C++98 中做到这一点,但你可以在 C++1x 中使用 initializer_lists。
【讨论】:
std::vector。你怎么能对数组做同样的事情?
在当前的 C++ 中无法做到这一点,正如 C++03 所定义的那样。
您正在寻找的功能称为“复合文字”。它存在于 C 语言中,由 C99 定义(当然具有特定于 C 的功能),但不存在于 C++ 中。
也计划为 C++ 提供类似的功能,但目前还没有。
【讨论】:
正如所写,您不能这样做。该函数需要一个指向字符串的指针。即使您能够将数组作为文字传递,函数调用也会产生错误,因为文字被认为是常量(因此,文字数组的类型为const string*,而不是函数所期望的string*)。
【讨论】:
使用可变参数函数将无限的无类型信息传递给函数。然后对传入的数据做任何你想做的事情,比如把它塞进一个内部数组中。
【讨论】: