Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Einfache klasse mit Fehler

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 < [ 2 ]
000
12.05.2003, 15:22 Uhr
~Anfänger00
Gast


Hallo,
ich versuche schon seit 2 Tagen dieses dähmliche Programm zum laufen zu
kriegen:


C++:
#include <iostream.h>

class daten //definition einer neuen Klasse in "daten.h"
{
public:
daten(char*,char*);
void setzeAdresse(char*,char*);
void passw(char x[12]);
void frage(char y[100],char a[30]);
bool p_pruef();
bool f_pruef();
void datenanzeigen();

protected:
char cvorname[50];
char cnachname[50];
  
char vergleich_p[12];
char vergleich_f[100];
char vergleich_a[30];

}




C++:
#include "cdaten.h"  
#include <iostream.h>        //Dekleration von "datenc.cpp"
                                          
daten::daten(char* cvorname,char* cnachname)
{
setzeAdresse(cvorname,cnachname,cstrasse,cort);
};

void daten::setzeAdresse(char* cvorname,char* cnachname)
{
strcpy(this->cvorname, cvorname);
strcpy(this->cnachname, cnachname);
};

void daten::passw(char pbuffer[12])
{
cout <<" Geben sie ein beliebiges Passwort ein: ";
cin >> pbuffer;
vergleich_p = pbuffer;
};

void daten::frage(char fbuffer[100],char abuffer[30])
{
cout << " Schreiben sie eine Frage\n:";
cin  >> fbuffer;
cout << " Die Anwort lautet: ";
cin  >> abuffer;
vergleich_f = fbuffer;
vergleich_a = abuffer;
};

bool daten::p_pruef()
{
char intern_pass[12];
cout << " Passwort eingeben: ";
cin  >>intern_pass;
return (vergleich_p == intern_pass);
};

bool daten::f_pruef()
{
char intern_antw[30];
cout << " "<< vergleich_f <<endl;
cout << " Antwort: ";
cin  >> intern_antw;
return ( vergleich_a == intern_antw);
};

void daten::datenanzeigen()
{
cout << cvorname<< endl;
cout << cnachname<< endl;
cout << cstrasse<< endl;
cout << cort;
};





C++:

#include "cdaten.h"
#include <iostream.h> //kleines Testprogramm "datendemo.cpp"

int main()                          //Fehler: to many types in declaration
{                                     //Fehler: typ 'daten' may not be defined here
daten test("Hans","Wurst");
cout << " Das ganze: " << endl;
test.datenanzeigen();
getchar();
}



Das Makefile:

# Pfade zu Includedateien und Libs in Variablen speichern
INCLUDE = FBorland\BCC55\Include
LIB = FBorland\BCC55\Lib
CPP = bcc32

# Abhängigkeiten von "TextdateiDemo.exe"
datendemo.exe: datendemo.obj datenc.obj
$(CPP) -I$(INCLUDE) -L$(LIB) datendemo.obj datenc.obj -o$@

# Allgemeine Abhängigkeit von Objektdateien
.cpp.obj:
$(CPP) -I$(INCLUDE) -L$(LIB) -c $<

# Target "clean"
clean:
del *.obj\
del *.exe\
del *.tds

Ich hab echt keine Ahnung warum der Compiler diese zwei Fehlermeldungen macht( //Fehler: to many types in declaration;//Fehler: typ 'daten' may not be defined here)
Was mach ich falsch?
Bitte helft mir.

Schoma Danke für eure Hilfe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.05.2003, 15:44 Uhr
virtual
Sexiest Bit alive
(Operator)


Semikolon vergessen (am Ende der Deklaration von Klasse daten).
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.05.2003, 16:52 Uhr
~Anfänger00
Gast


Kopf gegen die Wand klatsch!!!
Wer hatte die gloreiche Idee,dass man nach jeder Anweisung ein Semikolon setzen soll????

Jetzt sind es wieder 8 Fehler,aber ich bin endlich weiter gekommen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.05.2003, 17:00 Uhr
~0xdeadbeef
Gast


Und Semikolons zuviel, nach den Methodenkörpern (in der cpp) darf kein Semikolon stehen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.05.2003, 17:16 Uhr
~0xdeadbeef
Gast


Außerdem: in daten::daten(char*, char*):

C++:
daten::daten(char* cvorname,char* cnachname) {
    setzeAdresse(cvorname,cnachname); //setzeAdresse nimmt nur zwei char*s entgegen
}


Vergleichbares gilt für die Ausgabefunktion daten::datenausgabe, in der du cstrasse und cort nicht ausgeben kannst, weil es sie nicht gibt.
in daten::passw:

C++:
void daten::passw(char pbuffer[12])
{
    cout <<" Geben sie ein beliebiges Passwort ein: ";
    cin >> pbuffer;
    strcpy(vergleich_p, pbuffer); //<--inhalt kopieren. Arrays sind keine pointer.
}


Dasselbe gilt für die entsprechenden Anweisungen in daten::frage(...). In daten::p_pruef vergleichst du strings mit ==, was nicht hinhauen wird. machs stattdessen so:

C++:
return 0 == strcmp(vergleich_p, intern_pass);


Entsprechendes gilt für daten::f_pruef. Das ist alles, was ich so auf den ersten Blick sehe.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
12.05.2003, 17:17 Uhr
~Anfänger00
Gast


Kann sein aber ich konnte dass Programm endlich kompilieren!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
12.05.2003, 17:19 Uhr
~0xdeadbeef
Gast


Will sagen, der Borland-Compiler dürfte es dann fressen. Nach ISO-C++ müsstest du noch

C++:
#include <iostream.h>


durch

C++:
#include <iostream>


ersetzen und an den Anfang der beiden cpp-Dateien

C++:
using namespace std;


schreiben. Außerdem müsstest du in der daten.cpp noch

C++:
#include <cstring>


einfügen, damit der Compiler strcpy und strcmp kennt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
12.05.2003, 17:20 Uhr
~Anfänger00
Gast


Okay,ich schreib jetzt mein testprogramm und wenn das dann nicht tut was es soll,probier ich's mit deinen Änderungen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
12.05.2003, 17:24 Uhr
~Anfänger00
Gast


Es scheint so alsob er es schlucken würde ohne using namespace.
ich hab jetzt nur noch in der header datei und in der demo datei
<include.h> stehen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
12.05.2003, 17:25 Uhr
~Anfänger00
Gast


Möchtest du mein programm in der jetzigen fassung nochmal sehen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ 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: