invalid conversion



  • kurz und knapp!
    es geht um klassenprogrammierung:

    da bringt er ihr beim compilieren den fehler "invalid conversion from `const char*' to `char' "!.
    Ich hab aber nun alles durchgeschaut und weiß nicht weiter...:-(

    Hab mal den Quelltext angehangen und die betreffende Zeile markiert:
    Vielleicht kann mir jemand helfen!

    Danke im Vorraus

    Quelltext:

    #include <iostream>
    using namespace std;
    
    class Bestand
          {      
                 public:    long Nr;
                            char *Gst;
                            double Wert;
          };
    
    class Kran
          {      
                 public:    char *Typ;
                            char *Fa;
                            char Leas;
                            double NKost;
    
                            Kran (char *typ = "AK-30",
                                  char *fa  = "Allkran",
                                  char leas = "ja",
                                  double nKost = 50.7)
    
                                  { 
                                         Typ = typ;
                                         Fa  = fa;
                                         Leas = leas;
                                         NKost = nKost;
                                   }
    
                            ~Kran(){}
           };
    
    class Verkauf : public Bestand, Kran
          {      
                 public:   Verkauf (long nr = 1015,
                                    char *gst = "Autokran",
                                    double wert = 132000,
                                    char *typ = "AKX-35",
                                    char *fa = "Werner")
    
                                :(  {    Nr = nr;
                                         Gst = gst;
                                         Wert = wert;
                                         Typ = typ;
                                         Fa = fa;
                                     }  :( 
    
                            ~Verkauf(){}
                            double V_Preis();
          };
    
    double Verkauf::V_Preis()
           {
                 double VP;
                 VP = (Wert + (Wert * NKost)/100)*0,16;
                 return VP;
           };
    
    class Sonderpreis : public Verkauf
          {      
                 protected:    double Sond;
    
                 public:       double SPr();
    
                               Sonderpreis (double sond = 12)
                                     {
                                           Sond = sond;
                                     }
    
                               ~Sonderpreis(){}
          };
    
    double Sonderpreis::SPr()
           {
                  double Preis;
                  Preis = Verkauf::V_Preis();
                  Preis = (1-(Sond/100))*Preis;
                  return Preis;
           };
    

    <edit>Bitte Code-Tags verwenden</edit>



  • Die nächste Steigerung wäre es gewesen, das ganze schön in cpp-Tags einzuschließen 😉
    Dann würde dir vermutlich auch auffallen, daß du im Kran()-Konstruktor den Member 'char Leas' mit einem char* initialisieren willst.

    PS: Du solltest vielleicht die Konstruktoren der Basisklasse(n) als Initialisierungsliste anführen.

    PPS: Und steig um von char* auf std::string.



  • Bitte benutze cpp-Tags. So finde ich nichtmal die von Dir angesprochene Markierung des Fehlers.

    Doch, habs gefunden. Der Ausdruck "blabla" im Quelltext (also ein Text in Anführungszeichen) ist ein unveränderlicher Text (Typ const char*). Diesen versuchst Du einem char* zuzuweisen (Typ Zeiger auf veränderlichen Text).

    Was hast'n da für'n Compiler, der auf sowas achtet? 😉

    EDIT: Hab mich wohl zu sehr auf die markierte Stelle fixiert, war in dem Zusammenhang quatsch 🙄

    stuff schrieb:

    Danke im v******

    Schreib's bitte richtig oder garnicht.


Anmelden zum Antworten