Funktionen überladen



  • Hallo!

    Warum gibts hier eine Fehlermeldung?

    int main()
    {
    	fkt();
    	fkt(2);
    	fkt(1.4254);//anscheinend nicht eindeutig genug
             //fkt(float(1.4254));  //erst mit eindeutigem casten funktioniert's
    
    	return 0;
    }
    
    void fkt()
    {
    	cout<<"\nno arg";
    }
    
    void fkt(int a)
    {
    	cout<<"\narg:"<<a;
    }
    
    void fkt(float a)
    {
    	cout<<"\narg:"<<a;
    }
    

    Fehler:

    error C2668: 'fkt' : ambiguous call to overloaded function

    Wieso wird die Zahl nicht ohne Cast angenommen?

    Grüße,
    Harri



  • der vermutet bei fkt(1.4254); ein double. haeng hinten einfach noch ein f oder F dran.
    also dann fkt(1.4254f);



  • Danke für die AW.

    Grüße,
    Harri


Anmelden zum Antworten