【发布时间】:2014-01-05 18:33:50
【问题描述】:
#include<iostream>
#include<string>
using namespace std;
void main(){
string str="abc";
cout<<str;
system("pause");
}
如果我不包含字符串头文件,则 行 cout
我认为错误将出现在定义 str 的行。
【问题讨论】:
-
嗯,不。编译器是自动机,而不是人类。他们报告错误接近其实际位置是完全可以理解的。
-
@H2CO3 但我认为他指的是初始化并想知道为什么它不会在那里发生......
-
@H2CO3 这也是我的解释。
-
void main不合法。它必须返回int。无论如何,我注意到 MSVC 过去特别喜欢在<string>中提供所有内容,除了通过<iostream>的 I/O,这有点讽刺。 -
@chris: 类本身是通过
ios_base::failure(可能还有其他一些)的构造函数所需的异常来实现的。但是我认为没有引入其他不需要的非成员函数,例如to_string。