 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
nils langholz Guest
|
Posted: Tue Sep 02, 2003 1:12 pm Post subject: Zeiger übergeben |
|
|
Hallo Leute!
Ich habe ein (Anfänger)Problem bei C++ und zwar will ich ein Feld von
einem Objekt einer Klasse in ein anderes Objekt in eine andere Klasse
übergeben. Das herrausgeben in die main funktioniert auch schon, aber
das hineingeben in die nächste Klasse geht leider nicht.
Die Frage ist wo ist mein Denkfehler und wie mach ich es richtig ich
habe die einzelnen Teile nochmal angefügt:
Ausgabefunktion (funktioniert) (gekürzte Version matrix wird mit einer
anderen Methode definiert ( matrix=new int[X*Y]; ))
class MATRIX{
private:
int Z; // interne Gesamtgröße der matrix -1
int ZZ; // interne Position
public:
int* ausgabematrix;
int* uebergabe(void);
};
int* MATRIX::uebergabe(void)
{
ausgabematrix=new int[Z+3];
for( ZZ=3; ZZ <= (Z+3);ZZ++)
{ausgabematrix[ZZ] = matrix [ZZ-3];
}
return ausgabematrix;
}
meine Klasse in die es eingelesen werden soll
class FEHLSTELLEN{
private:
int Z;
public:
void einlesen(int*);
};
void einlesen(int* tt)
{
int Z = *tt;
}
Im Main habe ich folgendes:
MATRIX Messmatrix;
int* mm = Messmatrix.uebergabe();
FEHLSTELLEN Testmatrix;
Testmatrix.einlesen(mm);
bei der letzten zeile erhalte ich folgenden Fehlermeldung:
[Linker error] undefined reference to ´FEHLSTLLEN::einlesen(int*)`
wenn mir jemand einen Tipp gebn könnt wo mein Denkfehler ist wär ich
sehr dankbar
Tschau
Nils
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Jin Soo Hwang Guest
|
Posted: Tue Sep 02, 2003 3:12 pm Post subject: Re: Zeiger übergeben |
|
|
nils langholz schrieb:
| Quote: | int* MATRIX::uebergabe(void)
^^^^^^^^^^ |
| Quote: | meine Klasse in die es eingelesen werden soll
void einlesen(int* tt)
^^^^^^
{
int Z = *tt;
}
bei der letzten zeile erhalte ich folgenden Fehlermeldung:
[Linker error] undefined reference to ´FEHLSTLLEN::einlesen(int*)`
^^^^^^^^^^^^ |
Kann es sein dass du was vergessen hast?
gruss
jin soo
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Heinz Saathoff Guest
|
Posted: Tue Sep 02, 2003 3:33 pm Post subject: Re: Zeiger übergeben |
|
|
Moin Nils,
[snip Matrixcode]
| Quote: | meine Klasse in die es eingelesen werden soll
class FEHLSTELLEN{
private:
int Z;
public:
void einlesen(int*);
^^^^^^^^^^^^^^^^^^^^ |
Das ist eine Memberfunktion von FEHLSTELLEN
| Quote: | };
void einlesen(int* tt)
{
int Z = *tt;
}
|
einlesen ist eine globale Funktion, aber nicht die Memberfunktion
einlesen von FEHLSTELLEN. Als Memberfuntion schreibst Du das so
void FEHLSTELLEN::einlesen(int *tt)
{
int Z = *tt;
// willst Du hier wirklich ein lokales Z, welches
// FEHLSTELLEN::Z verdeckt? Falls Du den Member Z
// beschreiben willst, schreibst Du
Z = *tt;
}
| Quote: | Im Main habe ich folgendes:
MATRIX Messmatrix;
int* mm = Messmatrix.uebergabe();
FEHLSTELLEN Testmatrix;
Testmatrix.einlesen(mm);
bei der letzten zeile erhalte ich folgenden Fehlermeldung:
[Linker error] undefined reference to ?FEHLSTLLEN::einlesen(int*)`
|
Klar, es gibt in Deinem Code ja keine Definition von
FEHLSTELLEN::einlesen(int*), sondern nur von einlesen(int*).
- Heinz
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|