Funktionen in Headerdateien



  • Hallo zusammen,

    sind auch klassenlose, in Headerdateien definierte Funktionen automatisch inline oder gilt dies nur für Funktionen, die innerhalb der Klassendeklaration (die ja meist in einer Headerdatei stattfindet) direkt definiert werden?

    Vielen Dank
    LG, freakC++


  • Mod

    freakC++ schrieb:

    Hallo zusammen,

    sind auch klassenlose, in Headerdateien definierte Funktionen automatisch inline oder gilt dies nur für Funktionen, die innerhalb der Klassendeklaration (die ja meist in einer Headerdatei stattfindet) direkt definiert werden?

    Vielen Dank
    LG, freakC++

    Letzteres. In welcher Art Datei etwas steht, interessiert nur den Präprozessor, dem Rest des Compilers ist das egal.



  • ok danke. Dann kann ich ja ein paar Funktionen problemlos in die Headerdatei auslagern 🙂



  • freakC++ schrieb:

    ok danke. Dann kann ich ja ein paar Funktionen problemlos in die Headerdatei auslagern 🙂

    Interessante Schlussfolgerung ...



  • Moment, war es nicht so, dass der Linker dann gemeckert hat, weil es mehrere Definitionen für die entsprechenden Funktionen gab? Da muss doch explizit das Keyword "inline" hin, oder irre ich da?


  • Mod

    Skym0sh0 schrieb:

    Moment, war es nicht so, dass der Linker dann gemeckert hat, weil es mehrere Definitionen für die entsprechenden Funktionen gab? Da muss doch explizit das Keyword "inline" hin, oder irre ich da?

    Wo hast du das denn her? Ich glaube, du missverstehst den Kontext:

    struct A
    {
        void f(){} // immer inline
    };
    


  • Ja, aber ohne die Klassenumgebung ists eben nicht inline.


  • Mod

    Skym0sh0 schrieb:

    Ja, aber ohne die Klassenumgebung ists eben nicht inline.

    ➡

    gilt dies nur für Funktionen, die innerhalb der Klassendeklaration [...] direkt definiert werden?



  • Ok, ich hab inhaltlich recht, du hast recht was die Unterhaltung angeht, die hab ich nicht ganz verstanden. Sry.


Log in to reply