0

我想要一张 (int, fstream*) 的地图并使用一些函数对其进行修改。我可以在 main 中轻松修改它,但是如果我想通过将指针发送到 fstream 来使用它,我得到了这个编译器错误:error C2440: '=' : cannot convert from 'std::fstream' to 'std::basic_fstream <_Elem,_Traits> *'

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");
}

我怎样才能改变它?

4

1 回答 1

3

不要取消引用函数内的指针。

利用

void func(fstream* f){
  m[0] = f; //no more compile errors
}
于 2013-04-10T08:46:21.963 回答