size mismatch



  • hallo noch mal, ich habe volgendes problemm
    ahbe die funktionen

    .
    .
    .
    			else
    			{
    				--Current;
    				wcout << Wall;
    				wcout << setfill(Air) << setw( MaxRoomSize - Current);
    				cout << PrintAnimal;//Fehler
    				wcout << setfill(Air) << setw(Current);
    				wcout << Wall;
    
    			}
    			break;
    .
    .
    .
    

    Das problemm ist bei cout << PrintAnimal;
    wobei printAnimal das ist

    ostream& Cartoon::PrintAnimal(ostream & out)
    {
    	//dhlosh MEtablhton
    
    		//Kurio Programm
    
    	return out.write(this->Animal,this->GetSizeAnimal());
    }
    

    ich bekomme diesen fehler
    warning C4761: integral size mismatch in argument; conversion supplied

    Bei sisual studio 6.0. Nun mein vorschlag were cast, aber warum??? es sollte doch funktionieren auch ohne cast, kann mir einer weiterhelefen, und cast auf was auf char? ist doch char!.

    Ach da wo ich schreibe this->Animal ist ein zeiger auf ein string(char *Animal)
    Noch eins, wie kann ein mänsch so ein schwiergies I/O programmieren jesus maria UND JOSEF DAZU!!!!.



  • Nun, was du machst ist eine Adresse auszugeben, nämlich die von PrintAnimal. Und ich glaube nicht, dass du das willst. nochmals zur Verdeutlichung:

    x = meine_funktion; // x enthaelt nun die Adresse an der die Funktion meine_funktion beginnt
    x = meine_funktion(); // meine_funktion wird aufgerufen und x enthaelt danach deren Rueckgabewert
    

    Wenn du den << Operator für Streams überladen willst, um einen eigenen Typ auszugeben, macht man das anders.

    // global ueberladen
    ostream& operator <<(ostream& lhs, const PrintAnimal& rhs)
    {
        // was immer du ausgeben willst
        ...
        return lhs;
    }
    

Anmelden zum Antworten