1.只有支持复制的元素类型可以存储在vector或其它容器里。
#include "stdafx.h"
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
ofstream out1,out2;
out1=out2;
//ofstream print(ofstream);
//out2=print(out2);
return 0;
}
===================================================================================
1>------ 已启动生成: 项目: 20110327-iostream, 配置: Debug Win32 ------
1>生成启动时间为 2011-3-27 11:31:17。
1>InitializeBuildStatus:
1> 正在创建“Debug/20110327-iostream.unsuccessfulbuild”,因为已指定“AlwaysCreate”。
1>ClCompile:
1> 所有输出均为最新。
1> 20110327-iostream.cpp
1>c:/program files/microsoft visual studio 10.0/vc/include/ostream(604): error C2249: “std::basic_ios<_Elem,_Traits>::operator =”: 没有到 private 成员(在“std::basic_ios<_Elem,_Traits>”虚拟基中声明)的访问路径
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits
1> ]
1> c:/program files/microsoft visual studio 10.0/vc/include/ios(177) : 参见“std::basic_ios<_Elem,_Traits>::operator =”的声明
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits
1> ]
1> 此诊断出现在编译器生成的函数“std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator =(const std::basic_ostream<_Elem,_Traits> &)”中
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits
1> ]
1>
1>生成失败。
1>
1>已用时间 00:00:00.90
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
2.形参或返回类型也不能为流类型。如果需要传递或返回IO对象,则必须传递或返回指向该对象的指针或引用:
ofstream &print(ofstream&);//OK:takes a reference,no copy;
while(print(out2)){/*…*/}//OK:pass reference to out2