Prob mit Set Methoden
-
Moin... hab das vorhin geschrieben und kann das absolut keinen Fehler erkennen. Bei SetNr sagt der Compiler allerdings immer "request for member`SetNr`in`PC`,wich is of class CArtikel
#include <cstdlib> #include <iostream> #include <conio.h> class CArtikel //BASIKLASSE { private: char m_name[32]; long m_inventnr; double m_vkpreis; double m_tax; double m_gzuschlag; public: CArtikel(); //Konstruktor ~CArtikel(); char* GetName(void); void SetName(char* ); long GetNr(void); void SetNr(long); double GetPreis(void); void SetPreis(void); double GetTax(void); void SetTax(double); double GetGZuschlag(void); void SetZuschlag(double); }; class CGeraet:public CArtikel //1.Verebung { private: double m_selbskosten; public: CGeraet(double,double);//Name,Inevntarnummer,Selbskosten,gzuschlag void SetSelbstko(double); double GetSelbstko(void); }; class CMedium:public CArtikel //2.Vererbung { private: double m_ekpreis; public: void SetEkp(double); double GetEkp(void); }; CArtikel::CArtikel(){} void CArtikel::SetNr(long N){m_inventnr=N;} long CArtikel::GetNr(void){return m_inventnr;} using namespace std; int main(int argc, char *argv[]) { cout<<"läuft"; CArtikel PC(); PC.SetNr(1);
<---hier ist der immer am stressen
system("PAUSE"); return EXIT_SUCCESS; }
-
ich würd mich versch. dateien arbeiten
btw only
was ich sehe
unten hast du
void CArtikel::SetNr(long N){m_inventnr=N;}
also
SetNr(long N)
in der klasse hast du
void SetNr(long);
sollte aber
SetNr(long N)
heissen
-
Wenn ich das so wie du mache dann gibt der mir noch mehr Fehler in der Klasse selber aus... so gobt der mir nur en Fehler bei der aufgerufennen Set Methode auf und die sollte doch eigtnlcih richtig sein oder????
-
klassischer fehler:
CArtikel PC();
ist eine funktionsdeklaration, keine variablendefinition. lass die klammern weg.
void SetNr(long);
das ist ok, parameternahmen ignoriert der compiler in deklarationen sowieso. ich würde mich eher über das void bei parameterlosen funktionen ärgern.
-
hab das ganze nochmal verändert. Es funktioniert irgendwie keine Methode
#include <cstdlib> #include <iostream> #include <conio.h> class CArtikel //BASIKLASSE { private: char m_name[32]; long m_inventnr; double m_vkpreis; double m_tax; double m_gzuschlag; public: CArtikel(); CArtikel(long); //Konstruktor ~CArtikel(); char* GetName(void); void SetName(char* ); long GetNr(void); void SetNr(long); double GetPreis(void); void SetPreis(void); double GetTax(void); void SetTax(double); double GetGZuschlag(void); void SetZuschlag(double); }; class CGeraet:public CArtikel //1.Verebung { private: double m_selbskosten; public: CGeraet(double,double);//Name,Inevntarnummer,Selbskosten,gzuschlag void SetSelbstko(double); double GetSelbstko(void); }; class CMedium:public CArtikel //2.Vererbung { private: double m_ekpreis; public: void SetEkp(double); double GetEkp(void); }; CArtikel::CArtikel(){} CArtikel::CArtikel(long n) { m_inventnr=n; } void CArtikel::SetNr(long N){m_inventnr=N;} long CArtikel::GetNr(void){return m_inventnr;} using namespace std; int main(int argc, char *argv[]) { int M; cout<<"läuft"; CArtikel PC(); M=PC.GetNr(); cout<<M; system("PAUSE"); return EXIT_SUCCESS; }
da sagt er mir bei GetNr es wäre en Fehler
-
@Marcilo:
Und wenn du den Dtor schon deklariert hast, solltest du ihn auch noch definieren. Wobei hier der Standard-Destruktor vollkommen ausreicht.Caipi
-
ja aber davor sollten erstmal die Methoden gehen und die laufen nich :(((
-
EDIT: camper hat Recht!
-
habs doch schon erklärt...
-
OK jetzt hab ich es gerafft vielen Dank