variabler rückgabetyp



  • Hallo c++ elite 😃

    Weis jemand, wie man verschiedene Datentypen bei methoden zurückgeben kann?
    Das methode overloading berücksichtigt nämlich nicht den rückgabetyp
    Deswegen habe ich das jetzt so probiert, mit optionalen zusätzlichen parametern beim deklarieren der methode, weil sonst der compiler meckert.

    string method(string s){
    
      //...
       return s;
    }
    string method(int i){
      //...
       return int2str(i);
    }
    int method(string s,bool b=true){
       //...
       return str2int(s)
    }
    int method(int i,bool b= true){   
      //...
       return i;
    }
    
    int main{
    
    int i;
    i=method(i);
    
    string s;
    s=method(i);
    }
    

    So bekomme ich aber beim aufrufen der methode immer den Error:

    call of overloaded `length(const
    candidates are std::string
    usw.....

    Kann mir da jemand helfen?
    ist es überhaupt möglich den rückgabetyp so anhand der variable die ihn speichern soll zu verändern?
    Danke im voraus
    mfg kobauder



  • So direkt geht das nicht - du könntest höchstens etwas zurückgeben, was je nach Bedarf in die richtigen Datentypen umgewandelt werden kann.



  • du meinst, einfach den rückgabewert mit str2int oder int2str umwandeln?



  • Oder du gibst den Wert nicht per return zurück, sondern übergibst als Parameter einen Zeiger auf die zu ändernde Variable.

    void quadrat(int zahl, int* ergebnis)
    {
        *ergebnis = zahl * zahl;
    }
    


  • Ich würde Referenzen nehmen oder noch prüfen ob der übergebene Zeiger NULL ist.

    Ansonsten wäre da vllt. etwas mit Templates zu machen



  • ich werd das mal mit den referenzen probieren, jedenfalls danke für eure hilfe


Anmelden zum Antworten