2013-04-10 83 views
0

我想要一个(int,fstream *)映射并使用某些函数对其进行修改。我可以在main中轻松修改它,但是如果我想通过将指针发送到fstream来使用它,我得到了这个编译器错误:error C2440:'=':无法从'std :: fstream'转换为'std :: basic_fstream < _Elem,_Traits> *'C++中fstream指针的映射

map<int, fstream*> m; 
void func(fstream* f){ 
m[0] = *f; //compile error 
} 

int main(int argc, const char* argv[]) 
{ 
fstream f("hi.txt"); 
func(&f); //error 
m[0] = &f; //work fine 
f.close(); 
system("pause"); 
} 

我该如何改变它?

回答

3

不要在您的函数中取消引用指针。

使用

void func(fstream* f){ 
    m[0] = f; //no more compile errors 
} 
+0

明显。谢谢 – rank1 2013-04-10 08:49:15