VC++ inlinfunktionen?
-
Tach spezis,
tut mir leid dass ich Euch nochmal mit meinen Anfängerfragen konfrontiere
Wenn ich in mittels "Memberfunktion zufügen" eine inlinefunktion definiere und das ganze dan "builde" meldet der linker fehler. Also muss die Inlinefunction in die header. Kann man das Grundgerüst der Inlinefunktionen nicht automatisch in die header (nach dem Muster: "inline klassenname::methode()") packen oder muss man das manuell machen?gruss
-
Hi,
ich weiss nicht ob es dafür extra eine möglichkeit gibt das mit dem klassenwizard zu machen. Aber grundsätzlich, ja die methode muss dann im header definiert werden oder du definierst sie gleich in der klassendeclaration, dann wird sie automatisch inline wenn sie denn inline wird. Hmm doof ausgedrückt. Inline ist nur eine empfehlung an den compiler, ob der das dann auch macht hängt von der methode bzw. deren inhalt ab.
-
inline brauchst du eigentlich nichts machen, weil das ist nicht bindend. Weiterhin sind die Compiler heute so schlau, das die das auch selber machen, wenn die der Meinung sind, das es sich inline lohnt. Ich hab bisher inline nur einmal ausprobiert, als ich damals C++ gelernt heute. Heute lasse ich es aber den Compiler entscheiden, der ist sowieso schlauer als ich was sowas angeht.
Außerdem geht inline bei polymorphen Klassen eh nicht, weil zur Laufzeit sowas nicht "herausfindbar" ist. Das bringt dich nur in Probleme.
Lohnt sich wirklich nur, wenn man normale Funktionen hat und man diese inline haben will.
-
Danke für Deine Antwort
So werde ich vorgehen, und erstmal auf inline verzichten.
Auch aus bequemlichkeitgruss