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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Получить полином Qm из полинома Pn http://www.cyberforum.ru/cpp-beginners/thread4024.html
Помогите написать программу.:) Дан полином Pn(x)=a0+a1*x+a2*x2+.....an*xn; n<=8 (n-степень полинома) Получить полином Qm(x)=Pn(x)+x*Pn(x)+(x+b*b)*Pn(x); где b-произвольное число. Вот, что получилось у меня: #include <stdio.h> #include <conio.h> int main()
C++ Создать треугольный массив Помогите с задачкой: Построить треугольный массив (те каждая следующая строка больше\меньше предыдущей на 1 элемент (по идее должен получиться равнобедренный треугольник)), вывести на его на экран, а так же вывести на экран адреса первых элементов каждой строчки (для проверки). По идее препод сказал, что всё это надо делать через косвенную адрессацию. А как - не знаю. http://www.cyberforum.ru/cpp-beginners/thread4001.html
помогите с задачей на массив C++
ПОМОГИТЕ ПОЖАЛУЙСТА! ВЫ МОЯ ПОСЛЕДНЯЯ НАДЕЖДА!!! Даны упорядоченный по неубыванию массив: (Xi) i=1...n, и произвольный массив: (Yi) i=1...m. Слить их в одну упорядоченную по неубыванию последовательность значений: (Ck) k=1...m+n, скопировав в неё сначала массив X и перенося затем по очереди на нужное место элементы массива Y.
Нахождение суммы элементов динамической матрицы C++
Люди чесное слово убейте меня если это не правильно, должно вывадить сумму элементов массива! Но не работает почему??????????????????????: #include <iostream.h> #include <conio.h> int sum(const int** matr, const int n, const int m); main() { clrscr(); const n=2,m=2; int **a; for (int i=0;i<n;i++)
C++ помогите с курсовой http://www.cyberforum.ru/cpp-beginners/thread3953.html
привет меня зовут яна!!! ребят помогите пожалуйста не вылететь из института!!! срочно нужен курсовик!!! ОТЧИСЛЯЮТ!!!! сделайте плиз как можно быстрее!!! (сейчас) В долгу не останусь!!! напишите программу которая открывает фаил-список, содержаший имена файлов по одному в строке. программа анализирует содержание файлов и разбивает текст файлов на 2 колонки по 30 символов в каждой. по возможности...
C++ Помогите пожал найти ошибку!!! Помогите пожал найти ошибку, а то моск уже выключился и ниче не могу найти #include<stdio.h> #include<math.h> #include<conio.h> int n=5; /* Global peremen */ factorial (int n) main() {int a; if (n==1) return 1; a=factorial(n-1)*n; подробнее

Показать сообщение отдельно
Unreg
Сообщений: n/a

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

16.12.2007, 14:20. Просмотров 2358. Ответов 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
и он прав.

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