【发布时间】:2012-10-14 20:37:33
【问题描述】:
设置:在 Qt Creator 上,我调用了这个函数。我已经导入了所有的 sstream、string 等。它们都在同一个类中,并且在头文件中定义得很好:
std::string int2str(int x) {
std::stringstream ss;
ss << x;
return ss.str();
}
在for循环中:
for (int i = 0; i < 10; i++) {
std::string s = int2str(i); // error lies on this line
// a line of Qt code
}
我收到错误 "Invalid conversion from int to const char* [-fpermissive]"。这很奇怪,因为这不正是这个函数应该做的吗?
编辑:不知道如何使用 Qt Creator 来获取更多详细信息...对不起大家。
错误:
初始化'
std::basic_string<_CharT, _Traits,_Alloc>::basic_string(const_charT*, const_Alloc&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]'的参数1 [-fpermissive] @basic_string.tcc 第214行(/usr/include/c++/4.6/bits/basic_string.tcc)
EDIT2::
愚蠢的错误,其中之一包括,谈到命名空间。从不指定int2str 在哪里;在它前面使用了myClass::,现在一切都好——正如大家所想的那样。
【问题讨论】:
-
错误不在您显示的代码中。
-
您没有显示失败的代码。因为您显示的代码有效。因此,在提出问题时,请包含失败代码
-
您能否从“控制台”选项卡而不是“问题”选项卡发布完整的错误消息,包括文件和行信息?
-
您可能应该只检查
std::to_string函数,它并不完全如此,但会更有效。 -
我们离这里越来越近了。由于导致问题的代码行未在此处显示,因此我们仍然缺少一些信息来帮助您。你能把
int2str()的代码贴出来吗?