Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.59/32: Рейтинг темы: голосов - 32, средняя оценка - 4.59
 Аватар для bumbaram
47 / 47 / 9
Регистрация: 13.02.2012
Сообщений: 176

Венгерская нотация, оно вообще надо?

22.01.2013, 16:54. Показов 6651. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос в заголовке. Больше всего смущает префикс m_ для приватных членов класса, ни информативности на красоты, а печатать дольше. Общее мнение рудимент или хороший стиль?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.01.2013, 16:54
Ответы с готовыми решениями:

надо помочь лабами........что-то вообще никак...
Тема: «Решение задач обработки строк и символов» №1 В строке заменить все точки «.» на запятые «,», а двоеточия «:» на точку с...

прогп работает ,но надо чтлб оно выходило с помощию функций
посмотирите пожалуйста прогп работает ,но надо чтлб оно выходило с помощию функций.Заранее благодарен!!! ...

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

24
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
01.02.2013, 23:11
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от MrGluck Посмотреть сообщение
тем, что не является буквой и не коверкает запись, ассоциацию. Например было isPrint (переменная, отвечающая надо ли выводить на печать объект) стало m_isPrint - опечаткой. Была руда ore, стала m_ore - "больше".
Да ладно вам, с моей точки зрения аргументы притянуты за уши. Если бы не было нижнего подчёркивания - был бы полностью с вами согласен. Однако оно есть, и это кардинально меняет картину.
Однако никому своё мнение на навязываю, естественно. Кто как хочет - тот так и пишет. Главное - следовать корпоративным стандартам кодирования - и всё будет замечательно!
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
02.02.2013, 14:37
Цитата Сообщение от hinst Посмотреть сообщение
так всё и есть, только я про смену типа, а не про смену имени переменной.
Пример давай. Тип переменной от каста не меняется.
Цитата Сообщение от hinst Посмотреть сообщение
this->
усложняет чтение.

Цитата Сообщение от MrGluck Посмотреть сообщение
тем, что не является буквой и не коверкает запись, ассоциацию. Например было isPrint (переменная, отвечающая надо ли выводить на печать объект) стало m_isPrint - опечаткой. Была руда ore, стала m_ore - "больше".
Не аргумент. Если не используются символы _, для разделения слов(signal_number), то m_ ассоциируется как method.
В случает с m_ore и more, это в какой конвенции можно спутать?

Цитата Сообщение от silent_1991 Посмотреть сообщение
Главное - следовать корпоративным стандартам кодирования - и всё будет замечательно!
Нужно придерживаться одного стиля внутри проекта. Особенно актуально в OpenSource проектах.
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
02.02.2013, 15:01
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
m_ ассоциируется как method
member всё-таки...
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Нужно придерживаться одного стиля внутри проекта.
А это как-то опровергает моё высказывание?
0
Антикодер
Эксперт функциональных языков программирования
1889 / 871 / 48
Регистрация: 15.09.2012
Сообщений: 3,092
07.02.2013, 10:12
сокращенные суффиксы и префиксы вытесняют (как бы занимают ваше внимание) осмысленные названия сущностей.
Чем короче и понятнее название переменной или атрибута класса тем лучше.
Пример
C++
1
Dates dateOfBirth;
из названия ясно, что речь идёт о дате, уже можно примерно догадываться о типе.
Или другой пример например атрибут класса Dates
C++
1
2
3
4
5
6
7
8
class Dates
{
    public:
       ...
       void setDay(int);
       int getDay();
    private:
       int day;
попробуем то же самое сделать с помощью венгерской нотации

C++
1
2
3
4
5
6
7
8
class СDates
{
    public:
       ...
       void setM_iDay(int);                    // ???
       int getM_iDay();                         // ???
    private:
       int m_iDay;
Такой результат может получиться при автоматической генерации сеттеров геттеров с помощью IDE.(ведь код должен быть устойчив к обработке разными IDE)

Другое дело указатели

C++
1
      Dates *pDateOfBirth;
IDE возможно сама узнает префикс p и корректно с генерирует сеттеры и геттеры. Но я их иногда привожу к виду:
setDateOfBirthPointer

Добавлено через 11 минут
в реальности (в Eclipse) получилось так

C++
1
2
3
4
5
6
...
        int getIHouseNumber() const;
        void setIHouseNumber(int iHouseNumber);
    private:
        int m_iHouseNumber;
...
но мне даже буква I в сеттерах геттерах не нужна.
0
~ Эврика! ~
 Аватар для OhMyGodSoLong
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
07.02.2013, 10:22
Джоэль как-то уже плакался на эту тему (rooskie). Что люди нихрена не понимают, что такое настоящая венгерская нотация.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.02.2013, 10:22

Что это вообще такое и зачем оно надо: #include <файл> и using name space std?
Объясните десятикласснице, что такое заголовочные файлы, зачем они нужны? Что такое пространство имён, область видимости? Как это,...

С самого начала думал что будет как и раньше, просто добавить массив но нет. Теперь оно вообще работать не хочет
Пользователь вводит массив из 5 чисел. Программа находит минимум и максимум этого массива и выводит их на экран

Обьесните преимущество использования Web-сервисов и есть ли оно вообще
Здравствуйте друзья. Web сервисы используют как посредник между базой и клиентским приложеним. Ведь можно подключиться к базе и через...

Внешняя видеокарта. Есть у кого-то опыт? Стоит ли оно вообще того?
Играю давно, но с концепцией внешней видеокарты знаком недавно. В силу жизненных обстоятельств пришлось расстаться со своим новеньким...

HIS HD 5770 надо ли оно мне?
комп: amd athlon 5600 x2 2,9Ghz ATIradeon HIS hd3870 iceq3TURBO 2 512mb\256bit, 2GB ОЗУ (OCZ sys) 500wt БП, думаю менять видяху......


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru