Как переключать реализацию класса через #define?
От:
V488
Дата:
11.04.07 09:51
Оценка:
Как на этапе компиляции определять реализвцию компонета Store?
(пишу под DOS)
//Device.h ========================
#define FSTOR //переключатель
//#define RAMSTOR
//////////////////////////////////
//Archiv.h=========================
#include "Device.h"
class Archiv
{
//подключаем соответствующий класс носителя
#ifdef RAMSTOR
#include "RamStor.h"
RamStor Store;
#endif
#ifdef RAMSTOR
#include "FStor.h"
FStor Store;
#endif
int Open(char);
};
//Archiv.cpp======================
#include "Archiv.h"
#include "Device.h"
int Archiv::Open(char mode)
{
IsOpen=Store.Open(mode); ERROR: `Store' undeclared (first use this function)
return IsOpen;
}
//////////////////////////////////
//Main===========================
#include "Archiv.h"
Archiv Arch;
int main(int argc, char** argv)
{
Arch.Archiving(ArchData, LenArchData);
}
Переместить
Удалить
Выделить ветку
Проголосовать
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить
Проголосовать
Заголовок: