С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Как в switch проверить элемент строки? https://www.cyberforum.ru/ cpp-beginners/ thread1355745.html
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Я попытался проверить элемент строки в switch. В смысле switch (s). Но мне выдало ошибку. можно ли это исправить? Заранее благодарю!
Задача о ходе коня. Опять C++
Доброе время суток. Мой пост уже второй по этой программе. В прошлый раз меня просили ее сделать более понятной. Ну старался как мог. И так. Текст самой задачи: Разработать программу, решающую задачу о ходе коня. Дана доска размером n x n (n<=10). На поле с координатами x0, y0 помещается конь (правила перемещения этой фигуры как в шахматах). Задача заключается в поиске последовательности...
C++ Попарно переставить местами слова, стоящие на нечетных и четных местах в строке https://www.cyberforum.ru/ cpp-beginners/ thread1355707.html
Есть задание: В произвольном тексте (взятом из файла), содержащем не более 10 строк, в каждой строке не более 80 символов (исходный текст вывести на экран), попарно переставить местами слова, стоящие на нечетных и четных местах в строке. Вывести полученный текст на экран. Результат также записать в выходной файл, имя файла задает пользователь. Программа работает немного некорректно: если в...
C++ Использование #define для доступа к элементам класса Добрый день. Имеется класс вида: class Test { int key; int smth; } И я хочу сделать #define чтобы быстро получать доступ типа https://www.cyberforum.ru/ cpp-beginners/ thread1355702.html
C++ Найти количество различных пар между числами по признаку
итак, даны числа, много чисел. необходимо найти количество различных пар чисел, которые имеют хотябы одну общую цифру(цифра 1 числа есть в цифре 2ого, неважно на каком разряде(позиции)) перебор долгий, (250млрд. операций для 500000 чисел) я сделал простую программу которая по ко-ву и сочетаниям работает, так она работает только для 1-значных чисел, прошу помочь. вот если что моя 1ая программа...
C++ Удалить из массива те элементы, которые меньше (min + max)/2 Дан массив Х1,...,Х30. Нужно удалить из него те элементы, которые меньше (min+max)/2 https://www.cyberforum.ru/ cpp-beginners/ thread1355686.html
C++ Вывести комбинации целых x и y, при которых справедливо неравенство Ввести с клавиатуры натуральные числа N и М. Если N<=9 или М<=9, то предложить человеку повторить ввод N и М. В противном случае, найти все возможные способы выбрать натуральные числа (x,y), такие, что , sin^2(x)+sin^2(y)>0.9 0 < x <= N, 0 < y <= M. https://www.cyberforum.ru/ cpp-beginners/ thread1355684.html Вычислить сумму элементов каждой нечетной строки матрицы (с использованием классов и динамической памяти) C++
Ввести матрицу А(m,n) m<>n. Вычислить сумму элементов каждой нечетной строки матрицы. вывести с пояснением полученные значения сумм и строку с максимальным значением суммы элементов.
C++ Реализация стека наследованием реализации контейнера https://www.cyberforum.ru/ cpp-beginners/ thread1355651.html
Имеется иерархия классов, во главе которой класс-интерфейс. Нужно создать стек для хранения указателей на интерфейс для полиморфной обработки. Для создания стека нужно создать обобщённый контейнерный класс, и от него закрытым наследованием создать класс-шаблон-стек. class container { public: ~container(){delete data;} void push(void* d, int k)
C++ Как заставить работать функцию определения имени? Объявите класс TMan, создающий тип – человека. Элементы – данные класса – имя, возраст человека. Предусмотрите конструкторы класса: - по умолчанию; - получающий параметры; - получающий параметр –ссылку на класс TMan. Напишите функции – методы класса для: - ввода – вывода данных о человеке; - определения, является ли человек избирателем, если учитывать только его возраст; - определения... https://www.cyberforum.ru/ cpp-beginners/ thread1355644.html
Ошибка с памятью при работе класса и map C++
В общем есть класс тест class test { public: test(void); ~test(void); test(const int&); private:
C++ Malloc / calloc здравствуйте. Интересует такой вопрос : динамическая память. Когда мы выделяем память при помощи функции malloc то нас в универе учат делать проверку на предмет успешного выделения памяти. к примеру if (!a){printf ("nehvataet pamyati"); return 0;} как-то так. Вопрос в том нужно ли выполнять такую же проверку на успешное выделение памяти при использовании calloc? https://www.cyberforum.ru/ cpp-beginners/ thread1355580.html
510 / 272 / 60
Регистрация: 14.12.2010
Сообщений: 548
18.01.2015, 13:44 0

Паттерны проектирования (Фабрики) - C++ - Ответ 7119218

18.01.2015, 13:44. Показов 2134. Ответов 5
Метки (Все метки)

Ответ

Цитата Сообщение от Lotus34 Посмотреть сообщение
П,С Цель просто вставить шаблон, пусть он там и не будет особо нужен.
По паттернам есть книжка Приемы объектно-ориентированного проектирования. Паттерны проектирования.

Пока язык плохо знаешь, за паттерны лучше не браться.
На мой взгляд, для фабрики скорее подходит игрок(Player), а не игра (Navy).
Игра должна работать с абстрактным игроком:

Кликните здесь для просмотра всего текста
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
49
50
51
52
#include <iostream>
#include <memory>
#include <random>
 
enum class EPlayer{ UserPlayer, RobotPlayer };
 
class Move
{
public:
    Move(int _x, int _y) :x(_x), y(_y){}
    int x;
    int y;
};
 
 
class Player{
public:
    virtual Move move() = 0;
    //сюда можно добавить методы инициализации поля и взаимодействия с игрой
};
 
 
class UserPlayer :public Player{
    Move move()override{ std::cout << "I'm User player" << std::endl; return Move(0, 0); }
};
 
class RobotPlayer :public Player{
    Move move()override{ std::cout << "I'm Robot player" << std::endl; return Move(std::rand(), std::rand()); }
};
 
std::unique_ptr<Player> createPlayer(EPlayer _player)
{
    switch (_player)
    {
    case EPlayer::UserPlayer:
        return std::make_unique<UserPlayer>();
    default:
    case EPlayer::RobotPlayer:
        return std::make_unique<RobotPlayer>();
    }
}
 
 
int main() {
    auto player1 = createPlayer(EPlayer::UserPlayer);
    auto player2 = createPlayer(EPlayer::RobotPlayer);
 
    auto move = player1->move();
    move = player2->move();
 
    system("pause");
}


Вернуться к обсуждению:
Паттерны проектирования (Фабрики) C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2015, 13:44
Готовые ответы и решения:

С чего начать изучать паттерны проектирования?
С чего лучше всего начать изучение паттернов проектирования новичку? Большинство говорят, что надо...

Паттерны проектирования, нужен код на С++ и UML диаграмма
Декоратор (Decorator) или Оболочка (Wrapper) - GoF Итератор (Iterator) или Курсор (Cursor) - GoF...

Объектно-ориентированного проектирования и проектирования на основе структур данных
Помогите решить задание, так как вообще не понимаю, что тут можно сделать. Решить задание с...

Создание фабрики по созданию объектов
Здорова! Тут вычитал, что создание объектов лучше поручать отдельному классу который называют...

5
18.01.2015, 13:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2015, 13:44
Помогаю со студенческими работами здесь

Использование фабрики для шаблонного класса
Вот класс template &lt;class T&gt; class ConcreteConverter { T _value; long long _maxValue;...

Верно ли, что в основе фабрики лежит наследование классов?
Сори за глупый вопрос, но правильно ли я понял, что в основе фабрики лежит наследование классов?

Списки. Смоделировать работу отдела выдачи мебельной фабрики
Добрый день. У меня такой вопрос. Есть задание что то типа &quot;Смоделировать работу отдела выдачи...

Виртуальные функции: создание фабрики объектов для множества фигур
C++,консольное приложение.Задание на использование виртуальных функций.Задание подразумевает...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru