Ошибка C2248 в Fstream.h - PullRequest
       11

Ошибка C2248 в Fstream.h

1 голос
/ 19 апреля 2011

Это сообщение об ошибке, которое я получаю:

ошибка C2248: 'СТД :: basic_ios <_Elem, _Traits> :: basic_ios' : не может получить доступ к приватному члену объявлен в классе 'std :: basic_ios <_Elem, _Traits>' C: \ Program Файлы \ Microsoft Visual Studio 10,0 \ VC \ включить \ fstream

это строка с сообщением об ошибке

template<class _Elem,
    class _Traits> inline
    void swap(basic_ofstream<_Elem, _Traits>& _Left,
        basic_ofstream<_Elem, _Traits>& _Right)
    {   // swap _Left and _Right basic_ofstreams
    _Left.swap(_Right);
    }


это код доступа к fstream

char* stringPointer =  (char*) Marshal::StringToHGlobalAnsi(saveFileNameString).ToPointer();


ofstream sessionFile;
sessionFile.open(stringPointer, std::ios_base::in);
 Marshal::FreeHGlobal(IntPtr(stringPointer));`

Заранее спасибо !!!!

Ответы [ 2 ]

1 голос
/ 19 июня 2013

Я просто столкнулся с этой проблемой, и благодаря комментарию Лурона я понял это.

Я публикую объяснение на случай, если у кого-то возникнет такая же проблема:

Не существует конструктора копирования для потоковых объектов (ostream, istream и производных), и передача одного из этих объектов в функцию вызовет конструктор копирования и, следовательно, вызовет ошибку.

1 голос
/ 19 апреля 2011

Проблема не в Fstream.h, а в вашем коде.

Проверьте, не передаете ли вы закрытую переменную-член класса в ofstream или какой-либо другой метод.

...