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

Как организовать интерфейс в виде абстрактного класса? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти сумму неположительных, произведение неотрицательных, поменять местами первый и последний элементы массива http://www.cyberforum.ru/cpp-beginners/thread780009.html
подскажите что к чему в этом задании задание и пример его выполнения
C++ Вычислить сумму ряда с точностью Нужна помощь для решения задачки. Вычислить сумму ряда с точностью е (е=0.01; 0.001; 0.0001) и сравнить результаты с точным значением. Нахождение суммы реализовать двумя способами (в виде цикла с... http://www.cyberforum.ru/cpp-beginners/thread780002.html
Вычислить сумму и произведение C++
Необходимо написать такую программу: на вход подается строка, состоящая из цифр, знака + и знака *. На выходе должно быть целое число - результат арифметических операций. Например, вход "3+3*2",...
C++ Прекращение вывода
В начале программы зыпускается функция в потоке... Запускается в основном теле main бесконечный цикл, который просто выводит буквы Мне нужно через 5 секунд в потоке запретить этот вывод в консоль и...
C++ Вывод два максимальных значения http://www.cyberforum.ru/cpp-beginners/thread779963.html
Я только учусь,много еще не понимаю. У меня есть программа ,которая ищет коэффициенты при которых будет максимальная площадь,все работает правильно,но там оказалось что есть пара таких коэффициентов...
C++ Сравнение числел Доброго времени суток, есть такой вопрос, как можна сравнить например предпоследний элемент массива с последним элементом но чтобы был больше на 2 ? подробнее

Показать сообщение отдельно
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
06.02.2013, 01:14
экспортируемая из дллки функция позволяет создавать экземпляры конкретных классов, но возвращает при этом указатели на базовый интерфейс. т.к. как-то так:


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
class Interface
{
public:
   virtual ~Interface() {}
 
   virtual void doSomething() = 0;
};
 
// дллка экспортирует что-то такое:
Interface* createInterface1();
Interface* createInterface2();
 
// Реализация этих функций например такая:
Interface* createInterface1()
{
    class InterfaceImpl : public Interface
    {
        virtual void doSomething()
        {
           std::cout << "This is interface 1" << std::endl; 
        }
    };
 
    return new InterfaceImpl();
}
 
Interface* createInterface2()
{
    class InterfaceImpl : public Interface
    {
        virtual void doSomething()
        {
           std::cout << "This is interface 2" << std::endl; 
        }
    };
 
    return new InterfaceImpl();
}
 
// ну и в основном приложении, после того, как получена возможность вызывать
// эти функции делаем:
Interface* int1 = createInterface1();
int1->doSomething();
 
Interface* int2 = createInterface2();
int2->doSomething();
 
...
Добавлено через 2 минуты
Еще неплохо ознакомится с шаблоном проектирования Абстрактная Фабрика, чтобы понять, на что это похоже и для чего так делают:
http://ru.wikipedia.org/wiki/%C0%E1%...E2%E0%ED%E8%FF)
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru