OOP
-
Hallo
Ich hoffe mir kann wer weiterhelfen, ich bin ratlos:
Habe beschlossen mich mit Klassen herrumzuschlagen, soweit so gut, auch ein test Prog geschrieben, ABER wenn ich auf das kleine Wort static verzichte Funktioniert gar nichts mehr, die frage ist warum?
Hier mein code:
main.cpp
#include "stdafx.h" #include "iostream" #include "testklasse.h" using namespace std; int x = 1; int y = 2; int _tmain(int argc, _TCHAR* argv[]) { cout<< "main"; int ergebnis = test.mytest(x,y); test.ausgabe(ergebnis); cin.get(); return 0; }testklasse.cpp
#include "testklasse.h" #include "iostream" using namespace std; int testklasse::mytest(int x,int y) { int erg = x+y; return erg; } void testklasse::ausgabe(int x) { cout<< "das ergebnis ist: \n" << x; }testklasse.h
#ifndef TESTKLASSE_H #define TESTKLASSE_H [b]static class testklasse[/b] { public: int mytest(int , int); void ausgabe(int); }test; #endif /*TESTKLASSE_H*/Warum muss es eine static class sein?
Bzw, wie kann man die vermeiden?Bin für alle arten von vorschlägen offen.
Mfg lattella
-
Das
staticbezieht sich auf dastest-Objekt. Verwende einfach keine globalen Objekte.
-
Erst mal danke für die schnelle antwort,
verstehe allerdings nicht genau was du meinst, soll ich auf das test objekt verzichten?
lg lattella
-
verstehe allerdings nicht genau was du meinst, soll ich auf das test objekt verzichten?
Nicht verzichten, sondern anders einsetzen. Das globale Objekt test wird nicht mehr benötigt, dafür sollst Du so lokal wie möglich ein solches Objekt erzeugen.
int _tmain(int argc, _TCHAR* argv[]) { cout<< "main"; testklasse test; int ergebnis = test.mytest(x,y); test.ausgabe(ergebnis); cin.get(); return 0; }
-
Ahhh okay, danke, dachte dass das in diesem simplen prog keinen unterschied macht.
Vielen dank für eure schnellen antworten, hätte nie gedacht dass es im deutschsprachigen raum ein so aktives forum gibt, werde euch auch in zukunft mit meinen fragen belästigen

Thx vm
lattella