2011-10-16 67 views
1

当我打电话错误C2039: '打开':不是“STD成员:: basic_fstream的

void fileOpen(const char* 
fname_){file_.Open(fname_,ios::in|ios::out|ios::ate|ios::binary);}; 

功能等 tempobj-> FILEOPEN( “LastID.dat”);

它给我的错误

Error 23 error C2039: 'Open' : is not a member of 'std::basic_fstream<_Elem,_Traits>' 

我如何解决这个问题。这是我有这个功能的课程。它是模板类

#ifndef FileHandlerh_h 
#define FileHandlerh_h 
#include <iostream> 
#include <cstdlib> 
#include <fstream> 

using namespace std; 
template <class T> 
class FileHandler 
{ 
    private: 
     fstream file_; 


    public: 
     FileHandler(){}; 

     FileHandler(const char* fname_){fileOpen(fname_);}; 

     void fileOpen(const char* fname_){file_.Open(fname_,ios::in|ios::out|ios::ate|ios::binary);}; 

     void fileWrite(T); 
     void fileSeekWrite(T,int); 
     T fileRead(int); 
     int getNoOfRecords(); 

     ~FileHandler(){file_.close();}; 

}; 

帮我这个...!

+0

刚刚读取错误信息''打开':不是'std :: basic_fstream <_Elem,_Traits>'的成员 –

回答

6

C++区分大小写。您需要使用open()而不是Open()

+0

是这是问题谢谢 – Gihan

+0

而简单的“O”浪费了我2个小时。 ... – Gihan

+4

和38个SO用户时间。通过标记答案来解决问题。 –

3

使用小写O,也许?在标准库中的函数名称中看到大写字母很常见。

相关问题