Перейти к содержанию
    

Как делить программу на объекты?

Что любопытно. Конструкции namespace и using Keil понимает, как родные, даже без --cpp11. Хотя я не нашел упоминания using в armcc User Guide.  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 minutes ago, ViKo said:

Что любопытно. Конструкции namespace и using Keil понимает, как родные, даже без --cpp11. Хотя я не нашел упоминания using в armcc User Guide.  

А какая версия компилятора используется?

Насколько я помню даже v5 умеет делать некоторые вещи из c++11, в мануале есть список.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 minutes ago, ViKo said:

Что любопытно. Конструкции namespace и using Keil понимает, как родные, даже без --cpp11

А почему не должен понимать? Они появились в стандарте языка ещё когда сам кейл пешком под стол... компиляторы только под 51-е процы делал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

37 минут назад, Forger сказал:

А какая версия компилятора используется?

Насколько я помню даже v5 умеет делать некоторые вещи из c++11, в мануале есть список.

v5.06 Про список знаю, но там нет using.

 

21 минуту назад, esaulenka сказал:

Они появились в стандарте языка ещё когда сам кейл пешком под стол...

Понял. Я и по C не сильно шарю в стандарте (но там точно их нет), а на С++ только C++11 стал заглядываться.

 

Полистал Шилдта. Там namespace в 23 главе. Не дочитал ишшо до.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, esaulenka said:

А почему не должен понимать? Они появились в стандарте языка ещё когда сам кейл пешком под стол... компиляторы только под 51-е процы делал.

Я решил, что using имеется ввиду не только использования для namespace, но для замены "устаревшего" typedef. В этом плане using очень полезен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, Forger said:

Проектирование кода удобно выполнять другими инструментами (мне лично удобен XMind), результат этого проектирования потом может пойти в документацию к проекту, если это потребуется.

XMind - простая рисовалка плоских диаграмм,  ни о каком проектировании в ней речи быть не может.
В ней можно только спускать задания кодерам в виде юзкейсов, не более. 

Проектирование как и программирование требует рефакторинга и отладки.  А XMind  простой графический редактор, с текстами не дружит, о существовании стандартных проектных нотаций даже не подозревает, как видимо и вы.  :pardon:


 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, AlexandrY said:

XMind - простая рисовалка плоских диаграмм,  ни о каком проектировании в ней речи быть не может.

Мне лично ее возможностей пока что хватает. Функционал у PRO версии не такой уж и скудный.

 

 

2 minutes ago, AlexandrY said:

 о существовании стандартных проектных нотаций даже не подозревает, как видимо и вы.  :pardon:
 

Прекращайте уже "ванговать", опираясь на личные домыслы. Это ни к лицу модератору раздела :fool:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Just now, Forger said:

Мне лично ее возможностей пока что хватает. Функционал у PRO версии не такой уж и скудный.

Прекращайте уже "ванговать", опираясь на личные домыслы. Это ни к лицу модератору раздела :fool:

Почему все каждый раз все скатывается к  "мне лично"?  
Не захламляйте тогда ветку перечислением своих личных пристрастий, а то еще кулинарные начнете тут перечислять. 
И заботьтесь о своем лице. 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

40 minutes ago, AlexandrY said:

Почему все каждый раз все скатывается к  "мне лично"?  

Вот только не надо "переводить" стрелки!

Цепляетесь как раз именно Вы, причем каждый раз "вангуете" - строите домыслы о способностях и возможностях по неких косвенным "признакам". Причем, каждый раз мимо!

 

Если здесь запрещено делится опытом и высказывать свое мнение, то укажите где это указано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, Forger said:

Если здесь запрещено делится опытом и высказывать свое мнение, то укажите где это указано.

Так делитесь опытом. Тока здесь все опытные, не забывайте. Не в детском саду.
Но когда вы рассказываете о довольно кривых и наивных практиках, уж извините я не могу удержаться от комментариев. Ничего личного. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

34 minutes ago, AlexandrY said:

Не в детском саду.

Вот вот! Забудьте про свои методы угадывания навыков по методу "пальцем в небо" и последующего развешивания ярлыков!

 

Quote


Но когда вы рассказываете о довольно кривых и наивных практиках, уж извините я не могу удержаться от комментариев. Ничего личного. 

А вот для меня лично ваши методы как "кривые и наивные". И наверняка найдутся другие, кто тоже так считает, но при этом никто не комментирует ваши навыки/умения/предпочтения и откуда они такие взялись, а обсуждают именно идеи, интересные и не очень решения ;)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, Forger said:

А вот для меня лично ваши методы как "кривые и наивные". И наверняка найдутся другие, кто тоже так считает, но при этом никто не комментирует ваши навыки/умения/предпочтения и откуда они такие взялись, а обсуждают именно идеи, интересные и не очень решения ;)

Так не интересны идеи одним обоснованием для которых служит -  "мне лично нравится" и в частности потому что мы вас лично не знаем.
Поэтому я моделирую вашу личность чтобы хоть как-то  придать смысл обсуждению. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 minutes ago, AlexandrY said:

Так не интересны идеи одним обоснованием для которых служит -  "мне лично нравится" и в частности потому что мы вас лично не знаем.

Не интересно, не читайте. Это проблема?

 

Quote

Поэтому я моделирую вашу личность чтобы хоть как-то  придать смысл обсуждению. 

Ой, вот только не надо вот этих наивных оправданий! Вот уж точно "не в детском саду"

 

Предлагаю закончить этот офф. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 13.02.2019 в 09:16, Forger сказал:

Я имею ввиду именно такой термин "стек", БЕЗ привязки к конкретно взятой платформе или компилятору. 

Теперь понятно выражаюсь?

Опять пустой набор слов.

Что такое "стек без привязки к платформе"? Стек - это область памяти.

впрочем - вопрос риторический....

Цитата

Повторюсь: покажите пример как из статического метода (функции) класса обратится к его другим НЕстатическим методам или полям (данным). Об это речь, если вы не поняли :)

class MClass mClass;

func(&mClass); //обратились к к mClass (передали указатель на объект класса внутрь статической func)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

55 minutes ago, jcxz said:

впрочем - вопрос риторический....

Именно! 

 

Quote

class MClass mClass;

func(&mClass); //обратились к к mClass (передали указатель на объект класса внутрь статической func)

Это даже деткам в садике известно :)

 

Но речь совсем о другом:

речь о доступе к методам класса, не имея доступа к самому экземпляру класса, т.е. речь о НЕ статических методах класса.

Это можно сделать только из другого метода самого класса, т .к. в него автоматом передается соотв. this.

 

Возвращаясь к самой этой теме, нужно изолировать user код от обычных C-обработчиков прерываний.

 

Поясню, почему это приходится делать.

Скажем имеем ветвистую иерархию проекта. Например, в один класс вложен другой, в другой входит экземпляр третьего и так далее.

В обычном обработчике прерываний (с-функция), чтобы обратиться к методу глубоко вложенного класса, приходится иметь доступ к top-классу, который содержит внутри себя другие.

Решения такие:

1) формировать целую цепочку вызовов, куча функций (пусть даже inline), которые обращаются к другим, но глубже. Это - тотальный провал. Оверхед чудовищный. Куча public методов, засоряющих классы.

2) передать обработчику функтор - указатель на некую функцию некого класса, но обработчик должен иметь доступ к описанию этого класса (соотв. include ""), тоже каша, но хотя бы уже без оверхеда.

3) проинициализировать обработчику делегат, тогда никаких инклудов не нужно, обработчик ничего не знает о классе, делегат которого он вызывает. Оверхеда также практически нет.

Я использую третий способ, но приведенный к более кмк красивому и деликатному решению, а именно - обработчик прерываний является самым обычным методом нужного класса (НЕ static).

 

Повторюсь, это для кода, имеющего целую иерархию модулей, классов и т. п.

Для проектов, где иерархия напрочь отсутствует, т. е. все классы находятся "на одном уровне", это все решается просто: а именно так, как вы привели в этом простом примере выше :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...