inline in Klassen



  • Hi, ich blicke noch nicht so ganz durch ab wann Funktionen einer Klasse inline sind. Was ich weiss ist das Klassenfunktionen sofort als inline-Empfehlung gelten, sobald Funktionen innerhalb der Klassendeklaration sofort definiert werden(auch ohne inline keyword).
    Sind Funktionen auch dann inline, wenn ich die Funktionen in einer .h Datei nur deklariere und dann in einer .cpp Datei bei der Definition ein inline setze?
    HAtte das wo gelesen, allerdings wurde dort nur ein Beispiel genannt, in dem Klassen- Deklarationd und Defintion zwar getrennt waren, aber in ein und dem selben File untergebracht wurden.
    also funktioniert inline auch über 2 Files?

    Grüsse Beginner



  • Hallo

    Sind Funktionen auch dann inline, wenn ich die Funktionen in einer .h Datei nur deklariere und dann in einer .cpp Datei bei der Definition ein inline setze?

    Das kann gar nicht sein. Und zwar aus dem gleichen Grund warum bei Templates auch nicht nur die Definition bekannt sein darf.

    Du must immer daran denken, das inlude-Anweisungen immer nur einfache Textersetzungen bedeuten. Und wenn dann eine Klassendefintion aus einer includierten Headerdatei ohne in der Headerdatei angegebenen Implementation verwendet wird, werden keine Methoden geinlined, egal ob dort inline steht. Denn der Kompiler kann an dieser Stelle gar nicht inlinen, weil er die dafür notwendige Implementation nicht kennt.

    bis bald
    akari


Anmelden zum Antworten