Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Hallo leute habe ein problemm mit ner klasse Compilierfehler

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
04.07.2003, 10:29 Uhr
~Master_User_sagt
Gast


Nun heute habe ich eine schwirge frage an euch und zwar wie convertiere ich von char* to char oder umgekert. Das einzige das ich weis irgentwie mit den befehl "operator=" habe aber die teorie nicht verstanden nun vieleicht geht es auch anders schreibt noch ein paar zeilen ueber die loesung des Problemm Teory und so. Ach ja dies klasse ist ein projekt von mir fur die verarbeitung eines wetscheines bitte helft wer mir hilft darf die klasse behalten, fur jede weiter hilfe oder verbeserung der verarbeitung were ich dankbar. und noch was Kann mir einer sagen wie gut ich in C++ bin in einer skala von 0-100 wobei 0 Fahse ist also ich weiss nichts von Programmieren und 100 Der gott des Programmierens bin Danke in vohraus

Der fehler ist in der Letzten zeile.



NUN WER MIR HILFT DARF DIESE KLASSE BEHALTEN


/*
*******************************************************************************************

-----------------------------

Autor :
Adresse :
ORT/PLZ :
Contakt :
http://people.freenet.de/chm/chm.htm

Beginn : 07.06.2003
Ende : --.--.----
Geendert: 02.07.2003
Build : 2600
Version : 1.05.04 Beta Turbo EX

----------------------------

Zweck der classe:

Eingabe eines Wetscheins

Versions info:
----------------------------

Ab v.1.05
Habe ich den Kopierkonstruktor eingebaut.

Ab v.1.04
Generalüberholung des Codes Verschidene sahen Eingefung oder Gelöscht.

Ab v.1.03
Habe ich eine rutine eingefurt die eingabe kontroliert auf 1, 2 oder x.

Ab v.1.02
Habe ich die funktionen schneller gemacht um das Programm zu Beschleunigen, ich habe
das mit hilfe des inline und const befehl gemacht.

Ab v.1.01
Implementirung von konstruktor und Destuktor.

Version 1.00
Eine einfache klasse zum eingeben des Wetscheins.

----------------------------

Bugs/Problemme:

Keine Problemme oder bugs bekannt ;-). Wer ein fehler findet bekommt als erster ein Bug
Fix von mir geschennkt.

----------------------------

!!!Auchtung!!!

Fehler in der Letzten zeile der compiler sagt kann nicht konvertieren von char* to char
----------------------------

C++:
*******************************************************************************************
*/
#include <iostream.h>



////////////////////////////////////////////////////////////
///Classe zur Eingabe einer Wette mit tip
////////////////////////////////////////////////////////////

class Eingabe

{
    public:

        Eingabe (){};
        ~Eingabe (){};
        //Eingabe (const Eingabe &);    //Kopierkonstruktion
        void SetTip(void);        //Den wert des Tips des Wetscheins also 1,2 oder X
        char GetTip(void){return itsTip;}
        void SetEingabe();    //Zur Eingabe eines codierten Spiels z.b. 098. FCB -BVB
        int GetEingabe(void) const {return itsEingabe;}
        //Weiss nicht ob es Funktionier aber der Gedanke ist wenn ich das witerverwende
        // um die funktion zu Redefinieren.
        void FahlscheEingabe();
        
    private:

        char* itsTip;
        int itsEingabe;
};



//Implementirung des Kopierkonstruktors
/*Eingabe::Eingabe(const Eingabe & rhs)
{
    itsTip=new int;
    itsEingabe=new int;
    itsTip=rhs.GetTip();
    itsWeight=rhs.GetEingabe();
}*/




//Implementierung des Destruktors
/*Eingabe::~Eingabe()
{
    delete itsTip;
    itsTip=0;
    delete itsEingabe;
    itsEingabe=0;
}*/




void Eingabe::SetEingabe()
{
    int temp;
    cin >> temp;
    itsEingabe=temp;
};


//////////////////////////////////////////////////////////////////////////////////////////
//Überbrüft die Richtichkeit der Eingaben da ein Wettschein nur  die werte 1,2 oder x hat.
//////////////////////////////////////////////////////////////////////////////////////////
void Eingabe::SetTip()
{

int done=1;
char *Tip;
char Letter;

    do {
        cin >> Tip;        //Eingabe des Tips von der Funktion main
        if (Tip == "1")
            done = 0;
        if (Tip == "0")
            done = 0;
        if (Tip == "X" || Tip == "x")
            done = 0;
        else
            {
             Eingabe::FahlscheEingabe();//!!!Achtung bin unsicher ob es Funktioniert!!!!
             done=1;    //Sicher ist Sicher!!!
            };
            break;
       }while (done);
/*cin >> Tip;
    switch(Tip)
    {
    case 1:    done 0;
        break;
    case 0:    done 0;
        break;
    case 2:    done 0;
        break;
    case X:    done 0;
        break;
    case x:    done 0;
        break;
    default:    done 1;
        break;
    }
*/

    itsTip=Tip;            //FEHLER KANN NOT CONVERT FROM CHAR TO CHAR*
};

void Eingabe::FahlscheEingabe()
        {
            cout << "\aLeider ist die Eingabe fahlsch (NICHT 1, 2 oder X Eingegeben.)\n";
               cout << "Die Eingabe ist ungueltig und die Ahnwendung wirt neu Gestartet.\n";
        };//Weiss nicht ob es Funktionier aber der Gedanke ist wenn ich das witerverwende
        //um die funktion zu Redefinieren.


Dieser Post wurde am 04.07.2003 um 11:43 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.07.2003, 12:46 Uhr
~nAvi
Gast


Ich versteh zwar auch nicht so viel von c++, aber du kannst doch keinen pointer in ein char umwandeln? Was hat des für einen Sinn? Übernimm doch einfach den Wert vom pointer in ein char (oder hab ich da was falsch verstanden?)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.07.2003, 12:57 Uhr
~0xdeadbeef
Gast


Wenn du ne ehrliche Antwort willst, ungefähr 10. (100 wäre dann sowas wie Knuth oder Torvalds). Ich glaube, du verstehst die grundsätzlichen Algorithmen, aber als Programmierer fehlt dir die Erfahrung. Ich nehms mal auseinander:

C++:
#include <iostream.h>


ist veraltet. Schreib stattdessen

C++:
#include <iostream>
using namespace std;


Was die Klassendeklaration angeht, normalerweise spaltet man eine Klasse in zwei Dateien auf. Ansonsten kann es dir passieren, dass der Linker Probleme kriegt, weil er dieselbe Methode zweimal findet und nicht weiß, welche er nehmen soll. Also:

C++:
//eingabe.h

class Eingabe {
public:
    Eingabe ();
    ~Eingabe();
    void SetTip(void);        
    char GetTip(void);
    void SetEingabe();    
    const int GetEingabe(void);
    void FalscheEingabe();  //Rechtschreibfehler
        
private:
    char itsTip;  //<--- du willst nachher nur ein Zeichen einlesen. Ein char*
                        //würde die Sache nur unnötig verkomplizieren
    int itsEingabe;
};

//eingabe.cpp

Eingabe::Eingabe() {}
Eingabe::~Eingabe() {}

char Eingabe::getTip() { return itsTip; }
const int Eingabe::getEingabe() { return itsEingabe; }

void Eingabe::SetEingabe() { cin >> itsEingabe; }

void Eingabe::SetTip() {
    //Tip wird so oder so verändert, es gibt keinen Grund eine lokale Variable anzulegen.
    do {
        cin >> itsTip;
    } while(itsTip != '0' && itsTip != '1' && itsTip != 'X');
}

void Eingabe::FalscheEingabe() {
    cout << "Falsche Eingabe." << endl; //Hier bitte Text einsetzen
}



edit by FloSoft: c's durch itsTip ersetzt

Dieser Post wurde am 04.07.2003 um 13:09 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
04.07.2003, 12:59 Uhr
~0xdeadbeef
Gast


Ähm...ich und mein Hingekladde. Ersetz in Eingabe::SetTip die c's durch 'itsTip'.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
04.07.2003, 13:11 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


wenn man nen char * hat musste halt

in der Zeile


C++:
itsTip = new char;
*itsTip = Tip;



schreiben

außerdem würde


C++:
cin >> Tip;



dir nichts einlesen, da Tip NULL ist (hast nen Pointer definiert, aber keinen Speicherbereich zugewiesen!

Machs einfach so wie deadbeef gesagt hat

Was mir noch auffällt: geändert schreibt man mit Ä
--
class God : public ChuckNorris { };

Dieser Post wurde am 04.07.2003 um 13:13 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: