Programmierstil



  • öh danke...ich wollte jetzt keinen streit hier auslösen....

    ich würde gern eure Meinung hören:

    Für eine variable die der klasse angehört ....ist es unschön sowas zu schreiben:

    1. _ptr_meine_variable ?
      oder findet ihr sowas besser:
    2. _ptrMeineVariable?
      oder so:
    3. mptr_meine_variable=?
      oder:
    4. mptr_MeineVariable ?
      oder:
    5. mPtr_meineVariable ?

    Nur wegen interesse:
    stimmte es dass konventionell in C methoden so: das_ist_eine_c_methode() geschrieben werden "sollten" und C++ methoden so: DasIstEineCPlusPlusMethode() ??



  • .filmor schrieb:

    @net: Für die Namensgebung mag das ja vielleicht stimmen, aber freie Funktionen sind für guten C++-Code unabdingbar. Auch echte Zeiger hat Java nicht, genausowenig wie Templates. Ganz so einfach kann mans sich IMHO nicht machen.

    hast ja recht. in c++ programmieren die meisten einen mix aus oo und prozedural. aber ich denke echte oo-fans werden früher oder später sowieso bei java oder ähnlichem landen...


  • Mod

    @haase: an den formatierungsregeln und der namensgebung u.ä. ist ja nichts auszusetzen. der rest ist allerdings z.T. furchtbares Steinzeit-C bzw. C++ und sollte unbedingt aktualisiert werden.

    net schrieb:

    aber ich denke echte oo-fans werden früher oder später sowieso bei java oder ähnlichem landen...

    was hat denn java, das man als oo-fan unbedingt haben muss?



  • @tina4
    Solange Du nur alleine an Deinem Code schreibst, mach es so, wie es für Dich am besten lesbar ist. 🙂



  • Michael E. schrieb:

    .filmor schrieb:

    @net: Für die Namensgebung mag das ja vielleicht stimmen, aber freie Funktionen sind für guten C++-Code unabdingbar.

    Du meinst globale Funktionen? Nee, lass mal.

    Nicht unbedingt global, aber vielleicht frei in nem namespace, also nicht Member einer Klasse. Es gibt einige gute Gründe ich Fällen wo es möglich ist, lieber freie Funktionen als Members zu verwenden. Hauptgrund ist wohl die bessere Wartbarkeit, da keine privaten Variablen einer Klasse referenziert wird.

    Sehr bekannte Beispiele für freie Funktionen sind die Algorithmen aus der STL.



  • hmm danke,

    nehmen wir mal an man würde für andere C++ leute schreiben und ihr würdet gerne "professionell" aussehenden code abliefern wollen....wie würdet ihr dann entscheiden 😋



  • pMeinObject_



  • camper schrieb:

    net schrieb:

    aber ich denke echte oo-fans werden früher oder später sowieso bei java oder ähnlichem landen...

    was hat denn java, das man als oo-fan unbedingt haben muss?

    naja, mal aus eigener erfahrung: ich programmiere zu 90% in c, zu 5% in java und zu 5% in c++. bei c ist immer alles klar, ist sowas wie 'ne zweite 'muttersprache' für mich. java zwingt mich zu einer anderen denkweise weil ich da mit c-kenntnissen kein stück weiter komme. und...es macht sogar spass. bei c++ bin ich sehr oft am zweifeln ob ich dieses oder jenes objektorientiert oder prozedural mache. auch wenn das programm prima rennt denke ich oft 'das hätteste aber besser machen können wenn du dich mehr mit c++ beschäftigt hättest'. bei c und java kommen diese zweifel nie weil man von vorn herein nicht diese fülle von möglichkeiten hat. c++ ist eben eine eierlegende wollmichsau, dieser 'hund mit angenagelten beinen'. dshalb glaube ich, dass java für einen oo-fan einfach besser geeignet ist, weil man damit einfach weniger 'schweinereien' und abkürzungen machen kann.



  • hmm seltsam...
    in den ganzen coding conventions finde ich
    so sachen wie

    Klasse::MeineMethode()
    {
    pPointerVariable = ...
    }

    und in meinen g++ includes (wo ich denke das die es wissen müssten)
    die schreiben total anders:

    Klasse::_M_meine_methode()
    {
    _pointer_variable = ...
    }

    member sind also mit _M_ gekennzeichnet..





  • net: Und was mach ich, wenn ich OOP mit Templates verbinden will?



  • Michael E. schrieb:

    Klitzekleine Erweiterung. Und?

    das ist hoffentlich nicht dein ernst, oder?



  • Giorgio schrieb:

    Michael E. schrieb:

    Klitzekleine Erweiterung. Und?

    das ist hoffentlich nicht dein ernst, oder?

    Sicher ist das mein Ernst, denn es geht hier nur um die Namensgebung und nicht darum, was Templates sind.



  • tina4 schrieb:

    und in meinen g++ includes (wo ich denke das die es wissen müssten)
    die schreiben total anders:

    Klasse::_M_meine_methode()
    {
    _pointer_variable = ...
    }

    member sind also mit _M_ gekennzeichnet..

    Soweit ich weiß, soll man es so nicht machen.. In den includes beginnen die Variablen extra mit nem Unterstrich, damit man nicht irgendwelche Namens-Kollisionen mit seinen eigenen Programmen hat.
    Mach es also besser so wie in den "coding conventions", dann läufst du nicht Gefahr, dass deine Variaben so heißen wie die in den include-files


Anmelden zum Antworten