Klassen in namespace?



  • Hallo,

    warum definiert man Klassen in namespace?
    Damit sich der Klassenname öfters benutzen lässt?



  • weil mehrere klassen mit dem selben namen (was unweigerlich passieren würde wenn du mehrere bibliotheken im globalen namensbereich hast) nicht erlaubt sind.



  • Weil namespaces Klassen und Funktionen logisch gruppieren.



  • Ok, und warum verwendet man oft das Prefix C in Klassennamen? Hab ich jetzt auch schon oft gesehen ("CKlassennname...")?



  • mit präfixen lässt sich weniger machen als mit namensbereichen.



  • using namespace schrieb:

    Ok, und warum verwendet man oft das Prefix C in Klassennamen? Hab ich jetzt auch schon oft gesehen ("CKlassennname...")?

    Die Idee dahinter ist wohl, dass man in historisch gewachsenem Code mit C-Anteil direkt sieht, dass es sich um eine Klasse handelt. Ob das wirklich sinnvoll ist, ist eine andere Frage.



  • hanslol schrieb:

    mit präfixen lässt sich weniger machen als mit namensbereichen.

    Das hat mit den namespaces nix zu tun. die klassennamen habe einfach ein C vorne dran.


  • Mod

    using namespace schrieb:

    Ok, und warum verwendet man oft das Prefix C in Klassennamen? Hab ich jetzt auch schon oft gesehen ("CKlassennname...")?

    CWeil Cmanche Cleute Cdenken Cdas Cwäre Cbesser Clesbar. CSie Cstehen Cin CSprachen Cmit Ckomplexen CDatentypen Cziemlich Calleine Cda. CDas CC Centhält Cnämlich Ckeine Crelevante CZusatzinformation, Cstört Cjedoch Cden CLesefluss, Cwie Cdu Cbemerkst. Cdas Cnennt Csich Cübrigens "Cungarische CNotation" Cund Cdie Cübliche CReaktion Cda Cdrauf Cist Cein CBeitrag Cwie Cdieser.



  • Das ist einfach überholt und sollte nicht mehr vorkommen. Wenn die IDE Dir über Hover o.ä. nicht sagt, dass das eine Klasse ist, kannst Du das am Namen sehen. Ist heutzutage jedoch eben Quatsch. Es ist auch deswegen Quatsch, weil das alles inkonsistent ist. Es gibt kein System, das alle Objekte stark strukturiert, und kein mir bekanntes, gutes Argument, was rechtfertigt, dass nur Klassen als Ausnahmeobjekte klassifiziert, bei denen dann plötzlich ein C notwendig sein sollte.

    Namespace sind chic. Ich mag es auch die Ordnerstruktur eines Projektes mit den namespace-Verschachtelungen zu mappen (wie [meistens?] bei boost). Nimm doch Mal so Namen wie Range, da hätte ich bei mir ohne Namespace ständig Konflikte oder übermäßig lange Klassennamen.



  • Düfen namespace und Klasse den selben Namen haben?



  • Jein. Man probiere es doch einfach aus!



  • using namespace schrieb:

    Ok, und warum verwendet man oft das Prefix C in Klassennamen? Hab ich jetzt auch schon oft gesehen ("CKlassennname...")?

    Oft?

    Ich hoffe doch nicht mehr. Wobei in unseren Projekt der Chef tatsächlich auf ein Klassenpräfix besteht, ich kann es aber keinen empfehlen (In unseren Fall hat es aber wenigsten einen kleinen Sinn: Man erkennt Klassen die von TObject [VCL] abgeleitet sind von C++ Klassen [T bzw. C]).

    Ich verwende abseits des Projektes aber tatsächlich noch 2 Präfixe:
    E (enum) und I (Interface/rein virtuelle Basisklasse)


Log in to reply