随便写了下面的这段代码。
#include <iostream>
using namespace std;
class CBase
{
public:
const string& Name() { return "CBase"; }
void CallInternally(){
cout<<Name()<<endl; // error here
}
};
编译器马上提示了如下错误, 看了半天没明白! :-(
error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'const std::string' (or there is no acceptable conversion)
后来发现是#include <string>没有写造成的。这出错信息太迷惑人了!
不仅如此,其他很多时候,如果某个type找不到,出错信息不是这样,但也是很能迷惑人的。

本文详细介绍了在C++编程中使用字符串流进行输出时遇到的一个常见错误,即编译器提示错误C2679:找不到'<<'运算符。通过分析错误原因,发现是由于缺少包含<string>头文件导致的问题。文章提供了解决方案,并讨论了此类错误信息的迷惑性,帮助开发者避免类似问题。
2万+

被折叠的 条评论
为什么被折叠?



