Нечто похожее используется в Symbian C ++, где существует соглашение:
T-классы являются «значениями», например, TChar, TInt32, TDes
R-классы являются дескрипторами ядра (или других) ресурсов, например RFile, RSocket
M-классы - это миксины, которые включают интерфейсы (интерпретируются как миксины без реализаций функций). Рекомендация состоит в том, что множественное наследование должно включать не более одного класса, не относящегося к М.
Классы C - это почти все остальное, и они происходят от CBase, в котором есть кое-что, что может помочь в обработке ресурсов.
HBufC существует главным образом для создания запутанных сообщений на форумах Symbian, и его собственный префикс - это только начало. H означает «да?» Или, возможно, «Хо, хо! У тебя нет STL!» ; -)
Это близко по духу к венгерской нотации Apps, а не к венгерской нотации Systems. Префикс говорит вам кое-что о классе, который вы можете найти в документации, но который вы не знали бы иначе. Весь смысл назначения чего-либо в программировании состоит в том, чтобы предоставлять такие подсказки и напоминания , в противном случае вы просто назвали бы свои классы "Class001", "Class002" и т. Д.
Systems Hungarian просто сообщает вам тип переменной, которую IMO не может не волновать, особенно в языке, подобном C ++, где типы имеют тенденцию либо постоянно повторяться, либо полностью скрываться параметрами шаблона. Его аналог при именовании типов - это практика Java именования всех интерфейсов с помощью I. Опять же, меня это не очень радует (как и стандартные библиотеки Java), но если вы собираетесь определить интерфейс для каждого класса В дополнение к интерфейсам, которые фактически используются для полиморфизма в не тестовых ситуациях, вам нужен способ различать их.