Linkr erkennt inline funktion nicht



  • Hi!
    Ich würde gerne eine Funktion als inline deklarieren, dann erkennt der Linker aber nicht mehr die Definition als zugehörig, oder so, zumindest meckert er, als ob ich die Implementierung gar nicht vorgenommen hätte. "Unresolved external symbol" Was mache ich falsch?

    class myClass
    {
    inline float foo();
    } ;
    float myClass::foo()
    {
    return 17,5;//...
    }
    

    Grüße und vielen Dank
    Sören
    P.S: Falls ich das machen muss: Hab auch "inline float myClass::foo()" beid er implementierung versucht, obwohl ich eher nicht daran glaube, hat aber auch nicht funktioniert.



  • inline-Funktionen müssen immer in der jeweiligen Übersetzungseinheit bekannt sein, meist stehen sie deshalb mit im Header.

    return 17,5;
    

    Das ist wohl ein Tippfehler, oder? 😮

    Gruß
    Don06



  • Ist kein Tippfehler, ist extra 😉
    Die Funktion sieht auch nicht wirklich so aus...
    Danke!
    was anderes:
    Ich hab in meinem C++ Programm eine FFT-Bibliothek in C eingebunden und die produziert mir Access Violations, wenn sie einen malloc versucht.
    Der Fehler tritt auf, bevor man überhaupt den zurückgegeben Pointer kontrollieren könnte und sagt, man wolle auf 0xffffffee oder so ähnlich zugreifen. Wenn ich den durch ein new char[] ersetze treten andere völlig irrationale Fehler auf. Muss man bei der Integration von C in sein C++ was beachten?
    Vielen Dank
    Grüße
    Sören


Log in to reply