[C/C++] Billige Klasse für nen Anfänger

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Smokers, 17. März 2009 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 17. März 2009
    Billige Klasse für nen Anfänger

    hab hier mal folgende Klasse :


    Code:
    #include <cstdlib>
    #include <iostream>
    class Rennwagen {
     int kmh;
     char color[];
     char type[];
     public: Rennwagen() : kmh(0) {}
     void setColor(char arg1){
     color += arg1;
     }
     char getColor() {
     return color;
     }
     void setType(char arg1){
     type = arg1;
     }
     char getType() {
     return type;
     }
     void beschleunigen(int arg1) {
     if(arg1 > 250) { arg1 = 250;}
     kmh += arg1; 
     }
     void bremsen() {
     kmh -=50; if(kmh < 0) {kmh =0;}
     }
     int getSpeed() {
     return kmh;
     }
    };
    
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
     Rennwagen rennwagen;
     char typ[],col[];
     int nkmh;
     cout << "Rennwagen von DEINNAME " << endl;
     cout << "-----------------------" << endl;
     cout << endl;
     cout << "Bitte geben sie die Daten an...." << endl;
     cout << "Typ / Marke des Autos: "; cin >> typ;
     cout << "Farbe des Autos: "; cin >> col;
     rennwagen.setColor(col);
     rennwagen.setType(typ);
     system("CLS");
     cout << "Rennwagen von DEINNAME " << endl;
     cout << "-----------------------" << endl;
     cout << "Aktuelles Fahrzeug: " << rennwagen.getColor() << "er " << rennwagen.getType() << ".(250Km/h max)" << endl;
     cout << "-----------------------" << endl;
     cout << "Auf wieviel Kmh soll beschleunigt werden?" << endl;
     cin >> nkmh;
     rennwagen.beschleunigen(nkmh);
     cout << "Neue Geschwindigkeit ist : " << rennwagen.getSpeed() << endl;
     
     
     system("PAUSE");
     
    }
    
    Ich komm mit den char typen krams nich klar..

    wie mach ich das das die chars unendlich lang sein könnten , oder sie zumindest länger als ein zeichen sind(was sie im moment sind )
     

  2. Anzeige
  3. #2 17. März 2009
    AW: Billige Klasse für nen Anfänger

    Wie wäre es denn mit einen einfachen String ?

    #inculde <string>


    string meinString = "asdf";

    LG Farin
     
  4. #3 17. März 2009
    AW: Billige Klasse für nen Anfänger

    Ich frag mich, was fürn Compiler du hast, der das compiled: ^^
    Code:
     char color[];
     char type[];
    Du musst die Größe der Arrays immer explizit angeben, sonst weiß der Compiler ja gar nicht, wieviel Platz er reservieren muss.

    Dynamisch kannst dus machen, in dem du den Speicher dynamisch mit new reservierst. Das ganze ist mit C-Strings allerdings ziemlich umständlich. Da du aber sowieso C++ verwendest, solltest du am besten std::string aus der Standardbibliothek verwenden. Dazu ein "include <string>" ganz oben und alle char-strings mit std::strings ersetzen:

    Code:
    #include <cstdlib>
    #include <iostream>
    class Rennwagen {
     int kmh;
     std::string color;
     std::string type;
     public: Rennwagen() : kmh(0) {}
     void setColor(const std::string& newColor){
     color = newColor;
     }
     std::string getColor() {
     return color;
     }
     void setType(const std::string& newType){
     type = newType;
     }
     std::string getType() {
     return type;
     }
     void beschleunigen(int arg1) {
     if(arg1 > 250) { arg1 = 250;}
     kmh += arg1; 
     }
     void bremsen() {
     kmh -=50; if(kmh < 0) {kmh =0;}
     }
     int getSpeed() {
     return kmh;
     }
    };
    
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
     Rennwagen rennwagen;
     std::string typ, col;
     int nkmh;
     cout << "Rennwagen von DEINNAME " << endl;
     cout << "-----------------------" << endl;
     cout << endl;
     cout << "Bitte geben sie die Daten an...." << endl;
     cout << "Typ / Marke des Autos: "; cin >> typ;
     cout << "Farbe des Autos: "; cin >> col;
     rennwagen.setColor(col);
     rennwagen.setType(typ);
     system("CLS");
     cout << "Rennwagen von DEINNAME " << endl;
     cout << "-----------------------" << endl;
     cout << "Aktuelles Fahrzeug: " << rennwagen.getColor() << "er " << rennwagen.getType() << ".(250Km/h max)" << endl;
     cout << "-----------------------" << endl;
     cout << "Auf wieviel Kmh soll beschleunigt werden?" << endl;
     cin >> nkmh;
     rennwagen.beschleunigen(nkmh);
     cout << "Neue Geschwindigkeit ist : " << rennwagen.getSpeed() << endl;
     
     
     system("PAUSE");
     
    }
     
  5. #4 17. März 2009
    AW: Billige Klasse für nen Anfänger

    hat nicht kompiliert... ^^
    nur vergessen 2 mal mehr STRG Z zu drücken....
    mhh kay, das mit dem string wusste ich nicht, laut lehrer gibts in c++ keine strings.. :rolleyes:

    das mit dem includen von # <string> ging nicht, da bekam ich nen fehler, jedoch gings per std::string allgemein schon so...

    wie gesagt , im inet und laut lehrer gibs strings "eigentlich "nicht,.. das sind wohl auch nur chars oder so ähnlich .. ka



    sonst mit den arrays war mir das eigentlich klar ^^°
     

  6. Videos zum Thema
Die Seite wird geladen...