Нужна помощь! - страница 2

 
A100:
Ок ) . Раньше они были одинаковые, вроде специально сравнивал когда писал.
 
TheXpert:

Во-первых этот массив используется только в качестве буфера, я сам его НЕ ковыряю, поэтому это не может работать неправильно.

В качестве буфера может и будет работать - записали неправильно - прочитали неправильно. Неправильно на неправильно - получили правильно. Но в будущем может служить источником трудноуловимых ошибок
 
A100:
Но в будущем может служить источником трудноуловимых ошибок

Не, там просто память с запасом выделяется, абсолютно ничего страшного. Но исправлю конечно.

Жду еще замечаний.

 

Чтобы дать замечания по делу - сначала нужно понять концепцию - я ничего не понял. Для чего нужен каждый класс и что он делает?

 
A100:

Чтобы дать замечания по делу - сначала нужно понять концепцию - я ничего не понял. Для чего нужен каждый класс и что он делает?

Есть 4 интерфейса для доступа к файлам --

ConstFile -- интерфейс для чтения файла ansi, функция для получения интерфейса -- OpenConstFile

ConstFileWide -- интерфейс для чтения файла unicode, функция для получения интерфейса -- OpenConstFileWide

File -- интерфейс для чтения и изменения файла ansi, функция для получения интерфейса -- OpenFile

FileWide -- интерфейс для чтения и изменения файла unicode, функция для получения интерфейса -- OpenFileWide

Дальше спрашивайте.



 
bool FileImpl::Read(bool& value) {  return Read(value, m_ReadSeparators); }

bool FileImpl::Read(bool& value, string separators)
{__TRACE
   string tmp;
   if (ReadString(tmp, separators))
   {
      value = StringToBool(tmp);
      return true;
   }
   return false;
}
так обычно делается, если методы принципиально разные, а если один вызывает другой
FileImpl::Read(bool& value, string separators = __EMPTY)
{__TRACE   string tmp;
if (ReadString(tmp, __EMPTY == separators ? m_ReadSeparators : separators))
 

FBase - общий для всех базовый класс

virtual isUNICODE() { return ( false ); }

virtual isANSI() { return ( false ); } 

в соответствующем производном переопределяются на true 

 
A100:

FBase - общий для всех базовый класс

ConstFile -- общий для всех интерфейс.
 
bool ConstFile::Read(bool& Value){return false;}
если это чистая виртуальная то лучше так и оформить - зачем false - лучше сразу вызывать ошибку
#define PURE ... вызов ошибки

bool ConstFile::Read(bool& Value)PURE
 
class FileImpl
   : public File

class FileImpl
   : public FileWide
в ОПП такого не бывает
Причина обращения: