猿问

关于iostream类的疑惑,请问为什么下面语法会报错?

#include <iostream>
using namespace std;
int main(){
ostream one;
one<<"123"<<endl;
return 0;
}
书上都是这样写的, 我头文件包含错了?.
ostream one;
为什么这里会报错,
错误 1 error C2512: “std::basic_ostream<_Elem,_Traits>”: 没有合适的默认构造函数可用 f:\试验文件夹\vs2010_file\one\one\one.cpp 8 1 one

我用的是 visual studio 2010

FFIVE
浏览 403回答 2
2回答

慕斯709654

IOstream东西的很复杂,看起来以你的水平还不能够掌握。你的目的无非是定义一个输出流,然后输出。但你要明白,真正执行输出操作的不是ostream,而是streambuf,所以你要为自己定义的流对象指定一个缓冲流对象。缓冲流对象你会定义吗?如果你真的非要这么玩,那你只能这样:ostream one(cout.rdbuf()),让one用cout的缓冲区,不过这样,你还不如直接用cout呢。

杨魅力

貌似ostream是个基类,不能实例化使用,你的程序要输出123吗,用cout吧,cout << "123" << endl;
随时随地看视频慕课网APP
我要回答