Aufbau von Headerfiles



  • Hat jemand ein Muster dafür was da rein muss?
    Ich rede von so etwas wie Autor, erstellt am, Inhalt usw.

    Wie sieht sowas aus?



  • Headerfiles werden so aufgebaut:

    #ifndef __HEADER__
    #define __HEADER__
    
    //klassendeklerationen, Globale Funktionen, Templates, Globale Variabeln.Kommt alles hier rein und es müssen nur Templates in den Headerfiles deklariert werden...
    
    int x(void*); //deklaration einer globalen funktion
    
    class A: public B //klassendekleration
    {
        int a;
        char* p;
      public:
        friend int x(void*);
    };
    //u.s.w.
    #endif
    

    Hoffe is klar. 😃



  • Im Prinzip richtig, aaaaaaaaber: 😉 Führende _ und doppelte __ allgemein sind böse, weil solche Bezeichner für die Implementierung reserviert sind; also lieber HEADER_H oder sowas draus machen. Und was eine Deklaration und was eine Definition ist, wurde auch schon oft geklärt; -> FAQ oder Suche.



  • außerdem ist die Frage wohl anders gemeint

    siehe

    Ich rede von so etwas wie Autor, erstellt am, Inhalt usw.

    ich mach immer folgendes

    /*****************************************************************
     * Author: <Name + Email>
     * Copyright: <Copyright Informationen>
     * Date: <Erzeugungsdatum>
     * Last Change: <Datum der letzten Änderung + kurze Info>
     *
     * <Lizenz-Info>
     *
     *****************************************************************/
    


  • Anstatt von

    #ifndef __HEADER__
    #define __HEADER__
    class Foo{};
    #endif
    

    benutze ich immer:

    #ifndef Foo
    #define Foo Foo
    class Foo{};
    #endif
    


  • genau das was kingruedi geschrieben hat meinte ich 😉

    gibt es da evt. sogar einen standard?



  • Irgendwer schrieb:

    benutze ich immer:

    #ifndef Foo
    #define Foo Foo
    class Foo{};
    #endif
    

    lol 😃 👍

    gibt es da evt. sogar einen standard?

    nein. Da macht jeder was er will. (Also Firmen und Projekt intern gibt es da schon "standards" ;))


Anmelden zum Antworten