Fehler im Konstruktor ?
-
Hi,
ich hab ein Problem mit meinem Konstruktor :
Coord.h:
class Coord {
public:
// management methods
Coord (const int newx = 0, const int newy = 0);
private:
int xc;
int yc;
};Coord.cpp:
Coord::Coord (const int newx, const int newy)
{
xc = newx;
yc = newy;
}Coordtest.cpp:
#include "Coord.h"int main ()
{
Coord c1 = new Coord(2, 4); // Im Programm Zeile 9
Coord c2 = new Coord(4, 6); // Im Programm Zeile 10
Coord c3 = new Coord(); // Im Programm Zeile 11
...
return 1;
}bekomme ich folgenden Fehler :
Coordtest.cpp: In function »int main()«:
Coordtest.cpp:9: Fehler: ungültige Umwandlung von »Coord*« in »int«
Coordtest.cpp:9: Fehler: Argument 1 von »Coord::Coord(int, int)« wird initialisiert
Coordtest.cpp:10: Fehler: ungültige Umwandlung von »Coord*« in »int«
Coordtest.cpp:10: Fehler: Argument 1 von »Coord::Coord(int, int)« wird initialisiert
Coordtest.cpp:11: Fehler: ungültige Umwandlung von »Coord*« in »int«
Coordtest.cpp:11: Fehler: Argument 1 von »Coord::Coord(int, int)« wird initialisiertWoran kann das liegen?
Gruß SkySurfer
-
Hallo
//Coord.h: class Coord { public: // management methods Coord (const int newx = 0, const int newy = 0); private: int xc; int yc; }; //Coord.cpp: Coord::Coord (const int newx, const int newy) : xc(newx), yc(newy) // Initialisierungsliste! { } //Coordtest.cpp: #include "Coord.h" int main () { Coord c1(2, 4); // Instanz auf dem Stack Coord* c2 = new Coord(4, 6); // Pointer auf dem Stack und Instanz auf dem Heap ... delete c2; // Nach Gebrauch muß die Instanz hinter c2 gelöscht werden return 1; }Und sfds
bis bald
akari
-
daran, das du ein * vergessen hast
Coord* c1 = new Coord(2, 4); // Im Programm Zeile 9 Coord* c2 = new Coord(4, 6); // Im Programm Zeile 10 Coord* c3 = new Coord(); // Im Programm Zeile 11So sollte alles gehen, oder du lässt die Pointer gleich weg und schreibst
Coord c1(2, 4); // Im Programm Zeile 9 Coord c2(4, 6); // Im Programm Zeile 10 Coord c3(); // Im Programm Zeile 11
-
Hab diese Variante gewählt:
Coord c1(2, 4); // Im Programm Zeile 9 Coord c2(4, 6); // Im Programm Zeile 10 Coord c3(); // Im Programm Zeile 11bekomme dann aber die folgende Meldung:
Coordtest.cpp: In function »int main()«:
Coordtest.cpp:14: Fehler: assignment of function »Coord c3()«
Coordtest.cpp:14: Fehler: »Coord« kann nicht nach »Coord ()()« in assignment umgewandelt werden
Coordtest.cpp:15: Warnung: Die Adresse von »Coord c3()« wird immer zu »wahr« auswerten
Coordtest.cpp:17: Fehler: no match für »operator-=« in »c3 -= c1«
Coordtest.cpp:18: Warnung: Die Adresse von »Coord c3()« wird immer zu »wahr« auswerten
-
SkySurfer schrieb:
Hab diese Variante gewählt:
Coord c1(2, 4); // Im Programm Zeile 9 Coord c2(4, 6); // Im Programm Zeile 10 Coord c3(); // Im Programm Zeile 11bekomme dann aber die folgende Meldung:
Coordtest.cpp: In function »int main()«:
Coordtest.cpp:14: Fehler: assignment of function »Coord c3()«
Coordtest.cpp:14: Fehler: »Coord« kann nicht nach »Coord ()()« in assignment umgewandelt werden
Coordtest.cpp:15: Warnung: Die Adresse von »Coord c3()« wird immer zu »wahr« auswerten
Coordtest.cpp:17: Fehler: no match für »operator-=« in »c3 -= c1«
Coordtest.cpp:18: Warnung: Die Adresse von »Coord c3()« wird immer zu »wahr« auswertenweils
Coord c3;ist
-
Ohje ich lass es für heut glaub ich...
Danke