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

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

Войти
Регистрация
Восстановить пароль
 
eseeelil
1 / 1 / 2
Регистрация: 13.02.2015
Сообщений: 28
#1

Объекты и архитектура - C++

22.02.2015, 02:34. Просмотров 403. Ответов 7
Метки нет (Все метки)

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

Может у вас найдётся слово для того чтобы мне понять ООП, или дело в другом ?
Книжку какую может почитать, предложите пожалуйста.

Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2015, 02:34
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Объекты и архитектура (C++):

Функция создает объекты и указателями на них заполняет массив. При выходе из функции вызываются деструкторы объектов. Как сохранить объекты? - C++
Вопрос прост: как при выходе из функции сохранить объекты, которые были созданы в данной функции (указатели объектов положены в массив)?

В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток, перемещающий его. Встретившись, объекты начинают двигаться - C++
В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток, перемещающий его. Встретившись, объекты...

ОС и архитектура ЭВМ - C++
Скажите, а насколько важно программисту важно знать принципы работы операционной системы, архитектуру ЭВМ? В каких областях применения С++...

Архитектура ЭВМ на С++ - C++
1. Определить режимы работы каналов таймера. 2. Реализовать программу генерации звука с определением частоты звучания случайным...

Архитектура компоновки - C++
Научился кодить(более менее), но все таки остались пробелы в понимании. Искал в гугле данные темы, но во всех очень поверхностно и...

ООП архитектура игр - C++
Добрый день! Если в игре есть главный цикл, и я делаю надстройку ООП, нужно ли заносить этот цикл в класс окна/приложения...

7
rikimaru2013
C++ Game Dev
2471 / 1140 / 241
Регистрация: 30.11.2013
Сообщений: 3,709
22.02.2015, 02:57 #2
Абстрагируйся.

Класс дверь имеет в полях: деревяную доску, стекло, ручку и шурупчики всякие. Дверь можно открыть и закрыть.
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
class Door
{
private:
  Dosta m_doska;
  Rychka m_ruchka;
  ...
 
public:
  void open()
  {
      m_ruchka.down();
      m_doska.push_ot_sebya();
      m_ruchka.up();
      
  }
  void close()
  {
      m_ruchka.down();
      m_doska.na_sebya();
      m_ruchka.up();
  }
 
}
 
enum class Pologenie
{
 NORM,
NAJATA
}
class Ruchka
{
private:
Pologenie m_pologenie = Pologenie::NORM;
public:
  void down()
  {
      if(m_pologenie != Pologenie::NAJATA) 
      {
             // магия
      }
  }
}
0
eseeelil
1 / 1 / 2
Регистрация: 13.02.2015
Сообщений: 28
22.02.2015, 13:23  [ТС] #3
Спасибо конечно, но этого мало... тут же всё легко и понятно (дверь, ручка)... это база, базу я знаю.

Кликните здесь для просмотра всего текста

Спрашиваю Вас о чём то большем... например сейчас я делаю свой framework ( просмотрщик моделей на opengl ), и вот тут возникает проблема... ну понятно что необходим какой то класс Window, какой то класс Opengl для содержания контекста и ещё чего нибудь. Но вот а дальше, ступор... сижу туплю что дальше делать..
0
DrOffset
7517 / 4513 / 1025
Регистрация: 30.01.2014
Сообщений: 7,362
22.02.2015, 13:30 #4
Цитата Сообщение от eseeelil Посмотреть сообщение
Книжку какую может почитать, предложите пожалуйста.
Если еще не читал, то вот:
Гради Буч, - "Объектно-ориентированный анализ и проектирование с примерами приложений".
2
Убежденный
Ушел с форума
Эксперт С++
15937 / 7247 / 1140
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
22.02.2015, 13:52 #5
Цитата Сообщение от eseeelil Посмотреть сообщение
ну понятно что необходим какой то класс Window, какой то класс Opengl для содержания контекста и ещё чего нибудь. Но вот а дальше, ступор... сижу туплю что дальше делать..
Цитата Сообщение от eseeelil Посмотреть сообщение
Может у вас найдётся слово для того чтобы мне понять ООП, или дело в другом ?
Не надо плодить классы, интерфейсы и прочие сущности "просто так", на пустом месте.
ООП и другие принципы дизайна следует применять, исходя из вполне конкретных
практических соображений. Это главное.

Если вы не можете ответить, для чего, например, класс Window (т.е. какие
архитектурные задачи или проблемы он решает) - то этот класс, значит, здесь
вообще не нужен. В противном случае мы получаем то, за что так многие не
любят ООП: свалку непонятных классов с менеджерами, контекстами, синглтонами, с
запутанным наследованием друг от друга и таким же мутным поведением, хотя
все можно было сделать в пять раз проще.

Постигать ООП надо очень постепенно, добавляя его сначала как легкую приправу в
свое "блюдо", желательно с пониманием того, что вы делаете и для чего.

Ну и практика, практика, практика... На счет книжек - вот: "Паттерны проектирования"
от GoF и "Основы объектно-ориентированного программирования" Б. Мейера.
После них в голове должно все стать на свои места.
2
DrOffset
7517 / 4513 / 1025
Регистрация: 30.01.2014
Сообщений: 7,362
22.02.2015, 14:07 #6
eseeelil, забыл добавить, что если читаешь на русском, то лучше искать 2е издание. На 3е слишком много жалоб на перевод. А вообще лучше всего читать оригинал.

Добавлено через 7 минут
Цитата Сообщение от Убежденный Посмотреть сообщение
"Паттерны проектирования" от GoF
К ней еще хорошо идет Pattern Hatching: Design Patterns Applied от одного из авторов первой (John Vlissides). Если кому-то что-то не понятно было в Паттернах GoF, то стоит почитать эту книгу (не знаю есть ли на русском).
2
eseeelil
1 / 1 / 2
Регистрация: 13.02.2015
Сообщений: 28
22.02.2015, 15:09  [ТС] #7
Спасибо большое.

Кликните здесь для просмотра всего текста

Ну и чтобы не городить тем, спрошу ещё вот что..


Как лучше обрабатывать события в общем виде... (т.е. Принимать сообщения от окна, принимать\отправлять сообщение от самой программы(не в окно, а в разные части программы) ).

Может что то вроде такой структуры, которую могут получать, те кому они нужны.
Вот только как бы это всё грамотно организовать.
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
struct Event 
{
    struct KeyEvent 
    {
        int     key;
        bool    pressed;
        bool    pshft;
        bool    pctrl;
    };
    
    struct MouseEvent 
    {
        int x;
        int y;
        
        char    button;
        bool    pshft;
        bool    pctrl;      
    };
    
    struct SomeEvent 
    {
        int somedata1;
        int somedata2;
    };
    
    typedef enum  
    {
        KEYBOARD_EVENT = 1,
        MOUSE_EVENT,
        SOME_EVENT
    } EventType;
    
    EventType event;
    union 
    {
        KeyEvent    key;
        MouseEvent  mouse;
        SomeEvent   some;
    };
};

0
gru74ik
Модератор
Эксперт CЭксперт С++
4365 / 1941 / 210
Регистрация: 20.02.2013
Сообщений: 5,147
Записей в блоге: 22
19.12.2015, 19:30 #8
Цитата Сообщение от DrOffset Посмотреть сообщение
не знаю есть ли на русском
Есть (раз и два).
0
19.12.2015, 19:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2015, 19:30
Привет! Вот еще темы с ответами:

Архитектура программы Доктор - C++
Доброе время суток) пишу программу по теме поликлиника... работа с классами и всем всем всем... но я запуталась в классах... у меня их...

Архитектура больших программ - C++
Здравствуйте! Пишу довольно большую и комлексную программу. Вопрос - как следует организовывать её внутреннюю структуру? На текущий...

Архитектура размещения h и cpp файлов - C++
Доброго времени суток! Есть библа, содержащая ряд функций. Допустим, func1, func2 и ещё over 10. Меня интересует, как стандарты, здравая...

Гибкая архитектура и порождающие паттерны - C++
У меня возник вопрос следующего характера. Предположим, что есть некоторый интерфейсный класс фильтра, есть реализации, наследованные от...


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

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

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