Brainstorming



  • was spricht gegen your_namespace::string ?



  • CChrisMString



  • CTanga



  • Cyberspace



  • lass das verdammte C vor den klassen weg :o



  • Das geht nicht.

    C = String

    String = Tanga



  • @<"§U=(§/)> & Norondion: (zum Glück gibts Copy & Paste auch für Forennamen 😃 ): Wollt ich auch erst machen, aber angeblich erkennt man bei einem using namespace AGE; den Namespace nicht richtig und verwechselt das Ganze mit der MFC-Klasse.

    @Nudel-Süchtiger: Niemals! 😃



  • HEY HEY HEY UND ICH?

    MEIN TIP WAR : CYBERSPACE

    gefällt Dir der nicht?



  • Mir gefiele myNamespace::Tanga am Besten.



  • mynamespace::string
    mynamespace::String

    oder ud beschreibst was das besondere am string ist:
    mynamespace::cowstring
    mynamespace::nocopystring
    mynamespace::stringaslist
    mynamespace::rope
    mynamespace::staticstring
    etc..

    je nachdem was es für ein string ist...

    warum C? das ist sinnlos.
    C heißt, es gehört zur MFC, denn C ist der 'namespace' der MFC

    CFoo heißt, es gehört zur MFC
    TFoo heißt, es gehört zur VCL/CLX
    std::Foo heißt, es gehört zur C++ Std Library
    mynamespace::Foo heißt, es gehört dir

    also warum nicht mit dem namen ausdrücken, dass es dir gehört?



  • CCString
    und der nächste macht
    CCCString



  • @Shade of Mine: Früher hab ich ja immer ein Präfix vor alle Klassen gemacht, dann hieße CString jetzt AGEString, aber jetzt hab ich gedacht, ein Namespace ist eleganter. Soll ich jetzt doch wieder auf Präfix umstellen? 😞

    Oder würdet ihr wirklich überall das C wegmachen und die Klassen dann trotzdem noch mit einem Großbuchstabe anfangen?

    ChrisM



  • Klassen sollten mit einem Großbuchstaben beginnen.
    Ausnahmen sind Datenstrukturen wie vector, string,... denn diese sind eben keine echten 'Objekte' sondern modellieren nur Datenstrukturen.

    (ich persönlich schreibe sie trotzdem groß)

    C als Prefix ist sinnlos, denn C gehört der MFC.
    Wie oben erwähnt, CFoo bedeutet für jeden der schon einmal die MFC verwendet hat, Foo ist eine Klasse der MFC. (Bei Borland heißt es T)

    Diese Bibliotheken wurden entwickelt bevor es namespaces gab - deshalb musste der 'namespace' bestandteil des Namens sein (um Konflikte zu verhindern)

    Heute hat man namespaces und wenn die MFC heute entworfen werden würde, dann würde es

    MFC::Foo
    und bei Borland
    VCL::Foo
    heißen

    Du entwickelst zu einer Zeit wo es namespaces bereits gibt (nämlich jetzt) - warum also den veraltete stil für namespaces (mit allen seinen Nachteilen) nehmen?

    Du kannst ja
    C::String
    machen, wenn du den Namespace C haben willst.

    Ob prefixe ansich gut oder schlecht sind wurde shcon oft diskutiert (benutz da mal die suchen funktion) - ich will darüber jetzt nicht reden.

    Es geht jetzt nur darum, dass ein Prefix ala C der MFC gehört.
    auch wenn du whatever::CString schreibst:
    CString wird irgendwo mal ohne whatever:: auftauchen und schon kennt sich niemand mehr aus.

    Wenn du aber nur String dastehen hast, dann ists klarer! denn dann denkt man nicht an eine andere bibliothek sondern der erste gedanke ist: Ah, das wird wohl whatever::String sein (bzw. der Programmierer schaut nach ob das auch stimmt ;))

    denkt mal darüber nach warum du CString statt String schreiben willst... und schreib mal die pro und contra argumente hier ins forum - wir werden sie uU ergänzen. dann kannst du dir selber eine meinung bilden...

    PS:
    das sehe ich jetzt erst:
    du hast früher AGEString geschrieben, na dann mach das doch jetzt auch:
    AGE::String
    und schon musst du dich nicht umstellen und nutzt alle fähigkeiten von namespaces.

    denn wie oben erwähnt:
    AGEString bedeutet String aus dem namespace AGE
    heute geht das eben mit schönen sprachmitteln und man muss nichtmehr die namen dafür verunstalten.

    das konzept kannst du 1:1 übernehmen.

    [ Dieser Beitrag wurde am 23.04.2003 um 22:57 Uhr von Shade Of Mine editiert. ]



  • denkt mal darüber nach warum du CString statt String schreiben willst... und schreib mal die pro und contra argumente hier ins forum - wir werden sie uU ergänzen. dann kannst du dir selber eine meinung bilden...

    OK, also Vorteile von CString:
    - Man sieht sofort, dass man eine Klasse vor sich hat und nicht z.B. eine struct, eine enum, ein typedef oder sonstwas
    - Über #ifdef usw. auch wahlweise ohne Namespace kompilierbar, ohne das Namenskonflikte entstehen, wenn die MFC nicht verwendet wird (aber wer will sowas schon?)

    Vorteile von String (Nachteile von CString):
    - Konflikte/Verwechslungen mit MFC
    - Der Klassenname ist gleich dem Dateiname von Header und Übersetzungseinheit
    - Weniger Tippaufwand (ist der eine Buchstabe ein echtes Argument?)
    - In meine Namenskonvention nicht eingeweite verstehen nicht, was das C überall soll

    Und wenn ich schon dabei bin, kann ich ja gleich zugeben, dass ich noch was falsch gemacht habe: Templates fangen bei mir mit T an ... 😃

    ChrisM



  • Original erstellt von Shade Of Mine:
    **Klassen sollten mit einem Großbuchstaben beginnen.
    Ausnahmen sind Datenstrukturen wie vector, string,... denn diese sind eben keine echten 'Objekte' sondern modellieren nur Datenstrukturen.
    **

    ich glaube in der stl hat man sich über echte Objekte oder unechte keine gedanken gemacht weil alles klein geschreiben ist 🙂

    finde ich auch besser, lesen kann ich beides so oder so nur schreiben dauert länger
    im chat wird ja auch meist klein geschreiben, nunja beim programmieren kommt es ja nicht auf die anzahl der zeichen in der minute an
    nur stresst es mich wenn ich schon alles in meinen kopf fertig habe ich aber noch tippen muss bevor ich den compilier button drücken kann



  • also das mit dem C kannst du ja wohl nicht nur mit MFC verbinden. das benutzten auch andere libs vor mfc schon



  • knof: Stimmt schon, dass die Sprache C schon vor der MFC genutzt wurde, um Bibliotheken zu schreiben. Zusammenhang == 0.

    ChrisM: Über 'Notationskram' wird hier im schnitt vielleicht 1x pro Monat debatiert. Ich halte Programmieren nicht für eine Tätigkeit, in der es darum geht einer Zeichenfolge in rasender Geschwindigkeit einen Zustand (Class oder nicht class, war das denn die Frage?) zuzuordnen. YMMV.

    Hatte übrigens schon jemand Ceichenkette vorgeschlagen?



  • alsooo...ich schreibe auch immer ein "C" vor die Klasse, aber aus einem anderen Grund. Mir fällt nämlich immer kein gescheiter Name für die Instanzen ein *g*. Nenne ich eine Klasse z.B. "Field", wie nenne ich dann eine Instanz? field? FIELD? aField? Field1? Wird dann auch bißl unübersichtlich, wenn ich "Field field" schreibe. Also nenne ich die Klasse "CField" und die Instanz "Field"...
    Bin noch nicht so richtig wach, ich hoffe, ihr versteht, was ich meine 😉



  • wo ist denn da das Problem, wenn du dir einfach die Notation merkt, Klassennamen fangen mit groß Buchstaben an und Instanzen dann mit kleinem 🙂 ?



  • CZeichenkette ??


Anmelden zum Antworten