【发布时间】:2010-12-17 23:24:44
【问题描述】:
快速可能很明显的问题。
如果我有:
void print(string input)
{
cout << input << endl;
}
我怎么称呼它:
print("Yo!");
它抱怨我传递的是 char *,而不是 std::string。有没有办法在通话中进行类型转换?而不是:
string send = "Yo!";
print(send);
【问题讨论】:
-
Josh,你用的是什么编译器?当我使用“g++ -Wall -pedantic xx.cc”编译时,上面的代码对我来说效果很好。
-
不需要强制转换。你用的是什么编译器?错误到底说了什么?你能展示你的完整源代码吗?
-
废话。它在我的工作机器上出现故障,它是 Ubuntu 10,使用 g++,没有 -Wall,没有 -pedantic。我刚刚在家里尝试了我的 OSX 机器,它在类构造(因为它在工作中中断)和常规函数中都运行良好。
-
对我来说适用于 MinGW 中的 g++ 4.5.0 和 Ubuntu 8.04 中的 g++ 4.2.4。根本没有编译器选项。