[gelöst] Funktionsüberladung für unsigned char und int funktioniert nicht?



  • Hallo Leute,

    angenommen ich habe die Funktion foo wie folgt überladen:

    void foo(int x) { cout << "foo int\n"; }
    void foo(unsigned char x) { cout << "foo uchar\n"; }
    

    warum gibt dann

    unsigned char c = 0;
    foo(c)
    

    "foo int" aus???

    Warum findet da eine implizite Konvertierung statt? Da ist die Überladung ja total sinnlos!

    Phil

    EDIT:
    Hmm, war wohl noch irgendeine veraltete objektdatei.
    Ein make clean && make wirkt manchmal Wunder.



  • Was hast du für einen Compiler? - Bei mir (MSVC++) funktioniert das Wunderbar:

    foo uchar

    //Edit
    lol. Im Moment scheinen alle Compiler verrückt zu spielen, ausser meinem.. :p (ein Thread weiter unten.. ;))



  • ein Thread weiter unten..

    Den gibt es nicht, da die Threads neu geordnet werden.



  • knivil schrieb:

    ein Thread weiter unten..

    Den gibt es nicht, da die Threads neu geordnet werden.

    Ich weiss, allerdings dachte ich, dass er genügend schnell nochmal vorbei schaut und im übrigen ist es ja nicht soo wichtig, ansonsten hätte ich den Thread verlinkt..


Anmelden zum Antworten