Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Allgemeines (OffTopic) » .h und .cpp bei Klassen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.04.2006, 16:34 Uhr
~Labby
Gast


Kann mir jemand verraten welcher Teil einer Klasse in die .h Datei kommt und welcher Teil in die .cpp Datei geschrieben wird?

Hab bisher einfach alles in die headerdatei geklatsch, funktioniert auch wunderbar, ist aber wohl nicht das was man als "sauberer" Stil bezeichnet ^^.

Thx for Help.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.04.2006, 16:49 Uhr
A-l-e-x



In die Header-Datei kommt die Definition und in die cpp-Datei der Code. Also etwa so:


C++:
// Haeder
class MyStupidClass
{
private:
    int boo;
public:
    void Bla();
};

// cpp
void MyStupidClass::Bla()
{
    boo = 21;
}


Dieser Post wurde am 09.04.2006 um 16:52 Uhr von A-l-e-x editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.04.2006, 17:00 Uhr
Reyx
IT-fetischistischer Wurstsalat mit rostigem Berghorn
(Operator)


Wobei, auch wenn manch ein fanatischer Spinner im Web das Gegenteil behaupten mag, noch angemerkt sei, dass man Funktionen getrost auch in den Header direkt schreiben kann. Nur bei 1000-Zeilen-Funktionen ist das mit Sicherheit nicht sehr angebracht.

Bei dem Thema ist man ohnehin gespaltener Meinung, da es das "DRY-Prinzip" verletzt und sich neue Fehler einschleichen können.

Dieser Post wurde am 09.04.2006 um 17:01 Uhr von Reyx editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.04.2006, 18:22 Uhr
Oliver
S2-Pixelgeneral


Das ist generell nur angebracht, wenn die Funktion inline sein soll. Wenn der Compiler das inline nicht akzeptiert, kanns nämlich schnell mal passieren, dass er die static macht
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.04.2006, 19:01 Uhr
Reyx
IT-fetischistischer Wurstsalat mit rostigem Berghorn
(Operator)


Der Compiler kann unter jeder Bedingung selber entscheiden, ob er eine Funktion inline macht oder nicht; Notation irrelevant.

Wieso soll man die Funktionen in einer zweiten Datei kapseln? Man wiederholt Informationen (s. Dry-Prinzip in meinem obigem Post), macht dadurch bedingt evtl. neue Fehler, man muss immer zwei Stellen ändern, wenn sich z.B. die Parameter der Funktion ändern und und und.

Und Übersichtlichkeit ist nun wirklich kein Argument. Das ist imho einfach nur eine weitere gemeinhin für sinvoll erklärte "Stilrichtlinie". Jeder wird sofort als stilistisch katastrophal eingestuft, der seine Funktionen komplett im Header implementiert, ohne dass es einen ernsthaften Grund dagegen geben sollte. Im Gegenteil: Die Separation bietet Nachteile, die sich ganz einfach vermeiden ließen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
10.04.2006, 11:27 Uhr
RHBaum



@Reyx


Zitat:

Wieso soll man die Funktionen in einer zweiten Datei kapseln?


Schon mal was von Abhaengigkeiten gehoert ? Nich immer ist ne headerimplementierung die beste Wahl ... Templates sind auch ned das Allheilmittel.

Im Gegenteil, man sollte sich sehr wohl bewusst sein, wo wann welcher code generiert wird und in welcher .o er mal irgendwann residiert.


Zitat:

Jeder wird sofort als stilistisch katastrophal eingestuft, der seine Funktionen komplett im Header implementiert


Entwickel mal biblotheken, da wirst sehen das es nicht nur ne Frage des Styles ist ...

Aber wenn man sich dessen bewusst ist was man tut, spricht nix gegen auch headerimplementierte klassen zu bauen, mach ich ja auch ziemlich oft ...
Kleine schnucklige Hilfsklassen gehoeren einfach headerimplementiert ... wenn nicht expliziet was gegen spricht, aber meist sinds dann eh template-kandidaten.

Ciao ..
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Allgemeines (OffTopic) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: