Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Unreg
Сообщений: n/a
#1

Паттерн адаптер, помогите реализовать - C++

16.12.2007, 14:20. Просмотров 2376. Ответов 0
Метки нет (Все метки)

Доброго времени суток всем.
Я пишу программу и использованием одной библиотеки (трёхмерный движок irrlicht). У неё очень громоздкие конструкции, так что я хочу сделать её обёртку.
Я создаю абстрактный класс TEngineWrapper (кажется, это называется
интерфейс) и наследую от него класс TIrrlichtWrapper, который реализует... короче, конкретный класс, но
не показываю в остальные модули даже его описания, а выдаю только
описание функции createIrrlichtWrapper, которая всё делает внутри.

class TEngineWrapper
{
public:
virtual someEngineAdaptedFunc() = 0;
};

TEngineWrapper *createIrrlichtWrapper();

// ======= //

#include <irrlicht.h>
class TIrrlichWrapper : public TEngineWrapper
{
public :
virtual someEngineAdaptedFunc() { ... }
};

TEngineWrapper *createIrrlichtWrapper() { return new TIrrlichtWrapper; }

теперь вопросы.
во-первых, как лучше раскидать по файлам этот код? куда что? например делать
engwrp.h, engwrp.cpp, irrwrp.h, irrwrp.cpp ( и xors3dwrp.h, xors3dwrp.cpp,
если возникнет необходимость ) или только engwrp.h и engwrp.cpp? в смысле,
как "правильнее"? как полагается делать?

кроме того, если мне понадобится в интерфейсе обёртки использовать какой нибудь тип,
например для внешнего вида существа TAppearence, который для каждого движка булет свой,
то как мне быть с этим?
Я попробовал сделать интерфейс шаблонным

template< class TAppearence >
class TEngineWrapper
{
public:
virtual TAppearence obtainAppearence() = 0;
};

/*1*/TEngineWrapper *createEngigneWrapper();

// ===== //
#include <irrlicht.h>
class TIrrlichtWrapper : public TEngineWrapper< ISceneNode* >
{
public:
virtual ??? otainAppearence();
};

/*2*/ TEngineWrapper *createIrrlichtWrapper() { return new TIrrlichtWrapper; }


2) что писать на месте ??? ? то есть это получается как формальные и фактические
параметры функции, только ту типы. как с этим быть?
3) и вообще так он мне сделать не даёт.
В /*1*/ он говорит
error C2955: 'TEngineWrapper' : use of class template requires template argument list
В/*2*/ он говорит,
error C2440: 'return' : cannot convert from 'TIrrlichtWrapper *' to 'TEngineWrapper *'
error C2955: 'TEngineWrapper' : use of class template requires template argument list
и он прав.

Как быть с такими типами-параметрами?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2007, 14:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Паттерн адаптер, помогите реализовать (C++):

Как реализовать паттерн - C++
Как реализовать паттерн с помощью интерфейсов C++

Помогите реализовать стек - C++
Здравствуйте. Помогите, пожалуйста, решить задачу: Реализуйте структуру данных &quot;стек&quot;, реализовав все указанные здесь методы при помощи...

Помогите реализовать шифр цезаря - C++
Помогите написать графическую программу, которая шифрует слова шифром Цезаря.Шифр Цезаря — один из древнейших шифров. При шифровании...

Помогите реализовать динамический массив - C++
помогите с задачей по с++ 1. Реализуйте динамический массив, используя пометку элементов.

Помогите реализовать принцип fifo - C++
Помогите реализовать принцип &quot;первый зашел первый вышел&quot; и 3 состояния процесса рождение: выполнение и ожидание.

Помогите реализовать стек на основе массива - C++
помогите с задачачей по с++ 3. Реализуйте стек на основе массива.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2007, 14:20
Привет! Вот еще темы с ответами:

Помогите реализовать программу, возможно за денежное вознаграждение - C++
Дано нечто конечного автомата изображенного на картинке. Суть работы программы заключается вот в чем: Воодим любую последовательность чисел...

Помогите с задачей или подскажите как ее можно реализовать!!! - C++
Вводишь строку (типа char). а программа выводит все слова строки у который определенный символ находится на определенной позиции. Символ и...

Класс Прямая(Помогите реализовать построение прямой через 1 точку и параллельную ей прямую) - C++
Помогите дописать класс // Методы класса &quot;Прямая&quot; // ------------------------------------------------------------- //...

Паттерн Builder - C++
Вот у меня есть код примера реализации паттерна Builder(другие примеры не предлагать). В классе Army надо как-то исправить код так, чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru