2012-04-12 12 views
1

Ich führe eine alte C++/MFC-Code-Basis, wo einige Klassennamen mit "M" vorangestellt sind (z. B. , MDialogBase etc.). Bisher konnte ich nicht herausfinden, was dieses Präfix bedeutet - es gibt kein erkennbares Muster dafür, wo das Präfix erscheint oder nicht.Was bedeutet "M" bei Verwendung als Klassennamenpräfix?

Ich habe an die MFC-Namenskonvention gedacht, die Klassennamen mit "C" voranstellt (z. B. CWnd, CDialog), was "Klasse" bedeutet. Kennt jemand eine ähnliche Namenskonvention, möglicherweise zu Hause in der Windows/MFC-Welt, für das Präfix "M" Klassenname?

+0

Wilde Vermutung: Mixin? –

+0

@ Jordão: Interessante Idee, aber ich denke nicht. Während in einigen Fällen M = Mixin eine gute Übereinstimmung sein könnte (das 'MDialogBase'-Beispiel), befinden sich die fraglichen Klassen meistens am Ende der Klassenhierarchie. Danke für die Idee. – herzbube

+0

Noch eine wilde Vermutung: Ich habe alten VB/VBA-Code gesehen, wobei die Präfixe 'M' und 'C' verwendet wurden, um reguläre Module von Klassenmodulen zu unterscheiden. Besteht die Möglichkeit, dass Ihre Codebasis ein Ergebnis der Portierung von VB nach C++ ist? In diesem Fall wären Klassen, deren Namen mit "M" beginnen, höchstwahrscheinlich Singles oder würden wie solche fungieren. – Yarik

Antwort

0

Ich bin zu der Schlussfolgerung gekommen, dass das Präfix "M" für Klassennamen eine private Benennungskonvention war, die in der Vergangenheit in Kraft war, aber mittlerweile von einigen von ihnen zu einem miserablen und verwirrten Tod gebracht wurde meine Copy-Pasting-Vorgänger.

Die beste Schätzung, die ich derzeit habe, ist, dass das Präfix "M" ursprünglich "Implementierung" bedeutete, im Gegensatz zu dem gemeinsamen "I", das für "Schnittstelle" steht. Seit ich die Frage geschrieben habe, bin ich auf viele weitere "M" -Klassen gestoßen, und zumindest einige von ihnen implementieren eine Schnittstelle mit demselben Namen (z. B. MWriter implementiert IWriter).

Verwandte Themen