#c #templates #visual-c #compiler-errors
#c #шаблоны #visual-c #ошибки компилятора
Вопрос:
Когда я вызываю
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();};
};
Помогите мне с этим …!!
Комментарии:
1. просто прочитайте сообщение об ошибке
'Open' : is not a member of 'std::basic_fstream<_Elem,_Traits>'
Ответ №1:
C чувствителен к регистру. Вам нужно использовать open()
вместо Open()
.
Комментарии:
1. И ТАК 38 пользователей. Закройте свой вопрос, отметив его ответом.
Ответ №2:
O
Возможно, использовать нижний регистр? Довольно редко можно увидеть заглавные буквы в именах функций в стандартной библиотеке.