请问异常处理中怎样抛出一个ifstream对象
编程中遇到一个问题,如下一段程序中,filename已定义为string变量,
try
{
ifstream infile( filename.c_str() , ios::in| ios::binary );
if( !infile )
throw infile;
infile.read( (char *) ( &size ) , sizeof( size ) );
infile.read( (char *) ( list ) , sizeof( elemType ) * size );
infile.close();
}
catch( ifstream )
{
cerr<<"InformationDataFile.dat 文件打开失败 !"<<endl;
_getch();
exit( 0 );
}
编译时总是通不过,错误如下:
I:\Microsoft Visual Studio 8\VC\include\fstream(675) : error C2248: 'std::basic_ios<_Elem,_Traits>::basic_ios' : cannot access private member declared in class 'std::basic_ios<_Elem,_Traits>'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
I:\Microsoft Visual Studio 8\VC\include\ios(151) : see declaration of 'std::basic_ios<_Elem,_Traits>::basic_ios'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
This diagnostic occurred in the compiler generated function 'std::basic_ifstream<_Elem,_Traits>::basic_ifstream(const std::basic_ifstream<_Elem,_Traits> &)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
I:\Microsoft Visual Studio 8\VC\include\istream(842) : error C2248: 'std::basic_ios<_Elem,_Traits>::basic_ios' : cannot access private member declared in class 'std::basic_ios<_Elem,_Traits>'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
I:\Microsoft Visual Studio 8\VC\include\ios(151) : see declaration of 'std::basic_ios<_Elem,_Traits>::basic_ios'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
This diagnostic occurred in the compiler generated function 'std::basic_istream<_Elem,_Traits>::basic_istream(const std::basic_istream<_Elem,_Traits> &)'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
后来发现是 throw infile; 这句的问题,把它去掉就好了,那请问各位高手异常处理中怎样抛出一个ifstream类的对象呢?还是个抛出它的一个什么成员呢?