Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2010, 02:30   #1
Metal_666_
Новичок
Джуниор
 
Регистрация: 15.02.2010
Сообщений: 3
Вопрос Абстрактные классы. Опытным взглядом на 1 минуту работы

Есть у меня абстрактный класс

Код:
class DataManager
{
        protected:
                Configuration configuration;
        public:
                DataManager(Configuration config);
                virtual List<Buss> loadBuss() = 0;
                virtual List<Route> loadRoute() = 0;
                virtual List<Reys> loadReys() = 0;
 
                virtual void saveBuss(List<Buss> bussList) = 0;
                virtual void saveRoute(List<Route> routeList) = 0;
                virtual void saveReys(List<Reys> reysList) = 0;
};
от него наследуются 2 подкласса
Код:
class TxtDataManager : public DataManager
{ /*      методы и поля     */}
 
class CsvDataManager : public DataManager
{ /*      методы и поля     */}
еще есть класс
Код:
class Storage
{
                Configuration configuration;
                DataManager* manager;
                List<Buss> busList;
                List<Route> routeList;
                List<Reys> reysList;
        public:
                Storage(Configuration config);
};
Как сделать так,чтобы когда я читаю с конфига некоторый формат (txt или csv) мой класс Storage создавал нужный подкласс TxtDataManager или СымDataManager соответственно?
Попробывал вот так написать(глупо наверно выглядит)
Код:
Storage::Storage(Configuration config)
{
        configuration = config;
        if(strcmp(configuration.getConfig("format"),"txt") == 0)
                *manager = *TxtDataManager;  
}
Еще забыл написать что компилятор выкидывает на строчке
Код:
DataManager* manager;
ошибки:
[C++ Error] storage.h(9): E2303 Type name expected
[C++ Error] storage.h(9): E2139 Declaration missing ;

Последний раз редактировалось Metal_666_; 15.02.2010 в 02:37.
Metal_666_ вне форума Ответить с цитированием
Старый 15.02.2010, 02:32   #2
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

теги code не забываем.
Carbon вне форума Ответить с цитированием
Старый 15.02.2010, 02:40   #3
Metal_666_
Новичок
Джуниор
 
Регистрация: 15.02.2010
Сообщений: 3
По умолчанию

Исправил, но хотелось бы по теме услышать.
Metal_666_ вне форума Ответить с цитированием
Старый 15.02.2010, 02:41   #4
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

1) Компилятор не видит класс DataManager
2) manager = new TxtDataManager(...);
Carbon вне форума Ответить с цитированием
Старый 15.02.2010, 03:08   #5
Metal_666_
Новичок
Джуниор
 
Регистрация: 15.02.2010
Сообщений: 3
По умолчанию

Спасибо,действительно почему то не видел,создал новый файл,все скопировал и заработало(ох уж этот билдер >>;( )
Metal_666_ вне форума Ответить с цитированием
Старый 15.02.2010, 12:28   #6
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Metal_666_
Код:
  *manager = *TxtDataManager;
кода маловато, но имхо тут имеет место быть срезке
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вирус - "реклама" 1000 посешений , выбивает через каждые десять минут на минуту igor35 Свободное общение 1 23.09.2009 20:34
вопросик самым опытным :-) Doholyan Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 25.08.2009 17:13
[C] Абстрактные типы данных. Реализация дерева общего вида. Dju Помощь студентам 0 11.05.2009 18:11