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

C++

Войти
Регистрация
Восстановить пароль
 
JIawliet
77 / 77 / 18
Регистрация: 20.07.2016
Сообщений: 269
Завершенные тесты: 2
#1

Это что за паттерн? - C++

28.07.2016, 03:34. Просмотров 311. Ответов 0
Метки нет (Все метки)

Вообщем писал я код писал и наваял нечто такое:

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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <iostream>
#include <memory>
 
//======================================================================
class Base
{
public:
    virtual int getResult () = 0;
 
    virtual ~Base () = default;
};
 
//======================================================================
class Result
{
private:
    std::shared_ptr<Base> spb;
 
public:
    Result (std::shared_ptr<Base> p):spb(p)
    {  }
 
    int getResult () const
    { return spb -> getResult(); }
 
    friend Result operator + (const Result&, const Result&);
    friend Result operator - (const Result&, const Result&);
};
 
//======================================================================
class Number: public Base
{
private:
    int numb;
 
public:
    Number (int n): numb(n)
    {  }
 
    int getResult () override
    { return numb; }
};
 
//======================================================================
class Submition: public Base
{
private:
    Result frst, scnd;
 
public:
    Submition (const Result& r1, const Result& r2): frst(r1), scnd(r2)
    {  }
 
    int getResult () override
    { return frst.getResult() - scnd.getResult(); }
};
 
//======================================================================
class Addition: public Base
{
private:
    Result frst, scnd;
 
public:
    Addition (const Result& r1, const Result& r2): frst(r1), scnd(r2)
    {  }
 
    int getResult () override
    { return frst.getResult() + scnd.getResult(); }
};
 
//======================================================================
Result operator + (const Result& frst, const Result& scnd)
{ return Result(std::shared_ptr<Base>(new Addition(frst, scnd))); }
 
Result operator - (const Result& frst, const Result& scnd)
{ return Result(std::shared_ptr<Base>(new Submition(frst, scnd))); }
 
//======================================================================
int main ()
{
    Result r(std::shared_ptr<Base>(new Number(1)));
    r = (r - r) + (r + r);
    std::cout << r.getResult() << std::endl;
 
 
    return 0;
}
вроде похоже на Interpreter, но не совсем он.. ваше мнение? на что это похоже?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2016, 03:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Это что за паттерн? (C++):

Что это за язык? - C++
Прошу прощения если не в тот форум. Но очень важно узнать что это за язык используется на изображении:...

Что это за компонент? - C++
Всем привет. Кто ни будь, знает в какой библиотеке есть компоненты: TLight и TTrend ? Знакомы ли вообще такие названия кому ни будь?

ЧТо это за ошибка ? - C++
http://i7.beon.ru/72/42/1904272/41/design/bodybg.jpeg что с ней сделать и как убрать , при запуске программы ссылается на такую...

Дедушка, а что это за костыль у тебя? - C++
А что это за костыли такие?Прошу помощи олдфагов.Можно будет составить список хотя бы 10 самых самых и привести примеры исходного кода.

Внутри участки кода. Прошу опытных сказать что это за вид языка - C++
Здравствуйте!Я до сих пор мучаюсь какие бывают виды c++.вот наконец нашел такойразнообразный код и теперь прошу Вас сказать что код это?...

Знаю что информация неправильно преобразовывается при записи в файл, скорее всего и при считывании тоже. Как это исправить? - C++
Знаю что информация неправильно преобразовывается при записи в файл, скорее всего и при считывании тоже. Как это исправить? Вот что...

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

Какой паттерн подойдет, чтобы избежать длинных ветвлений? - C++
здравствуйте, есть код схематично такой: class CTest_base { public: CTest_base() : vec() {} virtual ~CTest_base() noexcept...

Объясните подробно данный код программы. Знаю что это фильтр а пошагово что к чему не понимаю - C++ Builder
void __fastcall TForm1::suiButton7Click(TObject *Sender) { tdiag -&gt; Filtered = false; tdiag -&gt; Filt = «id_p=« + suiEdit6 -&gt; Text; ...

Это что за ошибка? - C++ Builder
Обьясните что за ошибка, просто переместил папку с программмой, запустил в бильдере и вот что получилось, второй раз уже, неохота заново...

Паттерн "Fasade" - это что? - C++
Паттерн &quot;Fasade&quot; это что и с чем его хавать? своими словами)


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

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

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