Klassen - Vermutlich Anfängerfehler...
-
Hallo,
Ich komme aus der c welt und wollt ein wenig in cpp reinschnuppern, bin aber leider im moment zu doof, mir 'ne eigene klasse zu erstellen. Liegt es an den compileroptionen, oder doch am Quelltext?
test1.h#include <string> #include <iostream> #ifdef test1_h #define test1_h class test1{ public: test1 (int i) void sagzahl() private: int zahl; } #endiftest1.cpp:
#include "test1.h" test1::test1 (int i): zahl(i) { } void test1::sagzahl() { cout<<zahl; }der erste fehler ist in der test1.cpp in der zeile test1::test1 (int i): zahl(i) :
3 [...]klassen_test\test1.cpp `test1' has not been declaredwird test1.h nicht eingebunden? Ich nutze Dev Cpp, ver 4.992.
Über Hilfe würde ich mich sehr freuen, damit ich erst mal ein wenig rumspielen und probieren kann, bevor ich mich richtig ans C++ lernen mache.Gruß Martin
-
semicolon am ende der klassendeklaration fehlt.
-
Und das #ifdef soll wohl ein #ifndef sein

-
#include <string> #include <iostream> #ifdef test1_h // <= da fehlt ein 'n' #define test1_h class test1{ public: test1 (int i) // <= da fehlt ein ';' void sagzahl() // <= dito private: int zahl; } #endif#include "test1.h" test1::test1 (int i): zahl(i) { } void test1::sagzahl() { cout<<zahl; // <= da fehlt ein 'std::' }
-
wow, das geht ja fix hier!!! Vielen Dank!
auf die semicolons hätt ich auch selbst mal kommen können, bzw den quelltext ein wenig ordentlicher schreiben können, genau wie mir das ifndef eigentlich klar ist. das std:: beim cout hätt ich wohl vergessen, war nur recht irritiert von den Fehlermeldungen.
2 fehler sind aber leider noch geblieben.
[...] test1.cpp new types may not be defined in a return type
[...] test1.cpp return type specification for constructor invalid
-
ohne deinen code gelesen zu haben.
kleiner anfänger schrieb:
[...] test1.cpp new types may not be defined in a return type
normalerweise das semokolen am klassenende nach } vergessen.
[...] test1.cpp return type specification for constructor invalid[/quote]
vormalerweise "void Klasse(){}" statt "Klasse(){}" geschrieben oder auch semikolon vergessen, wenn vor dem ctor ne klasse steht.
-
jepp, das semicolon wars, das hab ich eben erst übersehen, das das noch fehlte.
noch einmal VIELEN DANK fürs schnelle Helfen. ich hoffe, nun komme ich auch mit meinem anderen Programm weiter.

-
Ich hab auch jetzt mal mit den classen angefangen und bin noch am grübeln wie das genau funktioniert

Kann mir mal jemand erklären wie das geht?
Wäre dankbar weil ich noch ganz am anfang beim programmieren bin und solch ein Forum mir gefehlt hat
-
oben rechts findest du ein haufen tutorials
die vermutlich deine fragen beantworten, ansonsten müsstest du konkrete fragen stellen.
-
Okay, Nur sind viele nicht mehr aktuell.
Ich komme nicht mit älter tutorials klar da ich erst mit Visual c++ V7.1 angefangen hab
Aber ich hab schon einige seiten die ich besuche:
http://tutorial.schornboeck.net/inhalt.htm
http://www.volkard.de/vcppkold/inhalt.html
http://www.cpp-tutor.de/cpp/toc.htm
http://de.geocities.com/throni3/cpp/Inhalt.html
http://download.pearsoned.de/leseecke/VCPLUS6_21Tg/data/start.htm
http://web.dadanini.com:7980/books/C++ in 21 Tagen/inhalt.html
http://www.volkard.de/Cpp/Tutorial/Grundlagen/index.htmlWenn ihr noch ein paar gute seiten kennt die anfängerffreundlich sind dann schreibt sie bitte hier rein.
Wäre dankbar über jede hilfe
Und wie ist der genaue aufbau mit dem classen.
Und dann wollte ich mal wissen was es mit string aufsich hat und ob jemand ein paar gute tips oder tutorials hat wie man es verwenden kann. Und es sollte anfönger freundlich sein
MFG Martin Milbret