Каково объяснение позади спокойного способа классов идентификатора?

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

6
задан yesraaj 2 September 2009 в 16:57
поделиться

6 ответов

Я считаю, что это историческое. Пространства имен были введены в C ++ примерно в 1995 году. Разработка Qt началась в 1991 году, поэтому очевидно, что пространства имен использовать нельзя.

7
ответ дан 8 December 2019 в 17:24
поделиться

Документация для Qt ссылается на пространства имен , хотя я не проверял код, чтобы убедиться, действительно ли они являются пространствами имен C ++ или взломом с публичными объявлениями внутри класса. Я предполагаю, что остальные пытаются не заставлять всех переименовывать все, хотя они могли бы предоставить путь миграции, если бы захотели, например:

namespace Qt
{
class Object { ... };
}

#ifndef NO_OLD_DECLS
typedef Qt::Object QObject;
#endif
2
ответ дан 8 December 2019 в 17:24
поделиться

Это может быть проблема переносимости. Пространства имен не поддерживаются / поддерживаются не всеми компиляторами, поэтому соглашение об именах помогает сократить конфликты имен.

3
ответ дан 8 December 2019 в 17:24
поделиться

Поскольку не осталось ни одного компилятора C ++, который не реализует пространства имен, в настоящее время есть только одна причина: брендинг :)

0
ответ дан 8 December 2019 в 17:24
поделиться

Qt очень консервативен в отношении используемых функций языка C ++. Никаких пространств имен, исключений или RTTI . См. Также эту статью , в которой подробно описывается, почему шаблоны не используются при обработке сигналов / слотов.

2
ответ дан 8 December 2019 в 17:24
поделиться

Qt использует префикс Q как часть своего стиля кодирования. Обычно он служит для облегчения чтения кода и определения того, что к чему.

Идентификатор:

  • с префиксом «Q» и суффиксом «Private» является частным классом, используемым для деталей реализации и не является частью API (например, QPainterPrivate)
  • имеет префикс «Q» и не суффикс «Private» - это открытый класс (например, QWidget)
  • с префиксом «q» (нижний регистр) является общедоступной глобальной функцией ( например, qRgb)

Принятие стиля кодирования и его единообразное использование упрощает другим людям понимание кода, который они не писали.

Ссылка: Стиль кодирования Qt

0
ответ дан 8 December 2019 в 17:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: