Re: Расположение классов в проекте
От: Nicht Россия  
Дата: 24.07.03 14:25
Оценка:
Здравствуйте, Calc, Вы писали:

C>Вот делаю программу (Чистый WinApi, но вопрос не по нему, а по ООП):


C>В функции WinMain обьявлен класс CProgram

C>В в этом классе есть переменная CSettings
C>В CSettings есть CSettingsDialog
C>В CSettins есть функция, в которой объявлен класс CUpdate

C>Хочу сделать класс CLogFile (название говорит само за себя)

C>Нужно, чтоб он был доступен из всех классов.

C>То есть у него будет функция типа LogWrite(что она делает не имеет значение)


C>В функции WinMain хочу вызвать LogCreate

C>В классе CSettings несколько раз LogWrite()
C>В других классах тоже самое.

C>Не представляю куда запихать CLogFile


В принципе можно воспользоваться паттерном singleton.
Что -то типа этого:

public Class CLogFile
{
private:
 static ClogFile* instance = null;

protected:
 CLogFile();

public:
 static CLogFile* instance();
}

CLogFile::instance()
{
 if ( null == instance )
 {
   instance = new LogFile();
 }

 return instance 
}


В С++ коде могу немного ошибаться, но главное смысл.
Обращение К обекту класса происходит через статическую функцию( типа logFile = CLogFile::instance()). Это дает возможность обращаться к объекту в любой точке программы. Но при этом объект создется только один раз. Конструктор сделан protected чтобы нельзя было создать экземпляр класса в обход функции instance().
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.