在Symbian C中使用了类似的东西,其惯例是:
T类是“值”,例如TChar,TInt32,TDes
R类是内核(或其他)资源的句柄,例如RFile,RSocket
M类是mixins,其包括接口(被解释为没有函数实现的mixins).指南是多重继承最多应包含1个非M类.
C类几乎是其他所有东西,并且来自CBase,它有一些东西可以帮助处理资源.
HBufC主要用于在Symbian论坛上生成混乱的帖子,并且拥有自己的前缀只是一个开始. H代表“嗯?”,或者可能是“Haw,haw!你没有STL!” 😉
这与Apps Hungarian Notation而非匈牙利系统符号的精神非常接近.前缀告诉你一些关于你可以在文档中查找的类,但你不会知道.在编程中命名任何东西的重点是提供这样的提示和提醒,否则你只需要调用你的类“Class001”,“Class002”等.
系统匈牙利语只是告诉你一个变量的类型,IMO没什么好兴奋的,尤其是像C这样的语言,其中类型往往不断重复或者完全被模板参数隐藏.它在命名类型时的模拟是用I命名所有接口的Java实践.再一次,我对此并不感到兴奋(标准Java库也没有),但是如果你要为每个类定义一个接口,除了在非测试情况下实际用于多态的接口之外,你需要一些方法来区分这两者.