Mfc и Stl ввод-вывод
Сейчас я решил переделать эту часть кода на STL.
Можно ли в STL реализовать что-то подобное (видимо с использованием istream и ifstream).
Если да, то кто может показать пример использования, а именно создание объектов класса istream и ifstream, передача этих объектов в процедуру, чтение данных...
Спасибо!
В конструкторе он должен инициализироваться. Но не удается скомпилировать код.
{
private:
istream& stream;
public:
CParser(istream &);
~CParser();
};
CParser:: CParser(istream &stream)
{
stream=stream1;// не срабатывает: ошибка при компиляции
'CParser::stream' : must be initialized in constructor base/member initializer list
}
private:
istream& stream;
[/code]
Ссылки нужно инициализировать
или не использовать
istream stream;
Ссылки нужно инициализировать
или не использовать
istream stream;
В указанном тобой куске ошибки нет
istream& stream;
ошибка в конструкторе, должно быть так:
{
}
В указанном тобой куске ошибки нет
istream& stream;
Неинициализированная ссылке есть ИМХО ошибка
{
}
Это и есть инициализация.(без ИМХО)
Неинициализированная ссылке есть ИМХО ошибка
Это и есть инициализация.(без ИМХО)
А что все-таки лучше: использовать класс istream или пользоваться CFile (в двух аспектах - скорость и переносимость)?
Лучше CreateFile/ReadFile.
Чем лучше то?
Чем грузины?
А что все-таки лучше: использовать класс istream или пользоваться CFile (в двух аспектах - скорость и переносимость)?
К переносимости я отношусь очень скептически.
По поводу быстродействия:
Я сравнивал на VS6 CFile, потоки, CreateFile/ReadFile/WriteFile и семейство fopen/fread/fwrite.
fopen/fread/fwrite работали на моих тестах быстрее всех.
В VS 2002/2003/2005 ситуация могла измениться.
К переносимости я отношусь очень скептически.
По поводу быстродействия:
Я сравнивал на VS6 CFile, потоки, CreateFile/ReadFile/WriteFile и семейство fopen/fread/fwrite.
fopen/fread/fwrite работали на моих тестах быстрее всех.
В VS 2002/2003/2005 ситуация могла измениться.
Странно, я сделал все на потоках и сравнил чтение файла из потока (способ1) с чтением файла через MapViewOfFile (способ2). Что получилось в итоге?
На Vs97 (VC5.0) способ1 медленнее, чем способ2
На VS2003 (VC7.0) способ1 быстрее, чем способ2
В чем дело? Думаю что-то здесь с streambuf не в порядке. Может быть в VS2003 какие-то используются умолчания, которых нет в VS97?
Не могла же потоковая библиотека кардинально измениться за неск. лет.