Forum: PC-Programmierung Variable von einer anderen Klasse verwenden


von Roland (Gast)


Lesenswert?

Guten Tag, ich möchte von einer Klasse X einen Wert in Klasse Y 
verwenden

ClassX.h
1
Class X: public Z
2
{
3
 public:
4
 int a;
5
 __fastcall X::X(s* sender);
6
 void __fastcall WertTransfer(int &b);
7
}
ClassX.cpp
1
#include "x.h"
2
 __fastcall X::X(s* sender)
3
{
4
 a = 0;
5
}
6
 void __fastcall WertTransfer(int &b)
7
{
8
 b = a;
9
}
ClassY.h
1
Class Y: public Z
2
{
3
 public:
4
 int b;
5
 __fastcall Y::Y(s* sender);
6
 void __fastcall MachWas();
7
}
ClassY.cpp
1
#include "y.h"
2
 __fastcall Y::Y(s* sender)
3
{
4
 b = 0;
5
}
6
 void __fastcall MachWas()
7
{
8
 y->WertTransfer(b);
9
 String line;
10
 line.sprintf(String("Ausgabe, %d").w_str(),b);
11
 ShowMessage(line);
12
}
Zeile 8 bei ClassY.cpp funktioniert nicht was mache ich falsch? :/
kann mir jemand bitte helfen :)

von Nachdenklicher (Gast)


Lesenswert?

Roland schrieb:
> was mache ich falsch

Du benutzt C++. (grins, duck und weg)

Ich meide diese Sprache zwar wie der Teufel das Weihwasser - aber was 
ist denn das y, dessen Methode du da aufrufen möchtest? Woher kommt es?

von Schlaumaier (Gast)


Lesenswert?

Lerne das der Anweisung  PRIVATE und PUBLIC bei der Dimensionierung 
aussagt.

Ich würde einfach mal sage, FALSCHE EBENE. ;)

von Oliver S. (oliverso)


Lesenswert?

Roland schrieb:
> Zeile 8 bei ClassY.cpp funktioniert nicht was mache ich falsch?

Wenn das der ganze Code ist, in Zeile 8 so ziemlich alles, was man in 
einer Zeile so falsch machen kann.
Was soll in Zeile 8 denn deiner Meinung nach passieren?

Oliver

von Klaus W. (mfgkw)


Lesenswert?

Neben dem unbekannten y ist das MachWas() aus der letzten .cpp ja gar 
keine Methode der Klasse, sondern nur eine einzelne Funktion.

Der Compiler wird genauso wenig wissen, was du vorhast wie ich.

: Bearbeitet durch User
von Ralf G. (ralg)


Lesenswert?

Roland schrieb:
> y->WertTransfer(b);

- 'y' ist nicht definiert
- falls 'y' vom Typ 'ClassY' sein soll -> ClassY hat keine Methode 
'WertTransfer()'
- falls 'y' vom Typ 'ClassX' ist, dann wäre der Name sehr unglücklich 
gewählt

von Klaus W. (mfgkw)


Lesenswert?

Dein WertTransfer() steht übrigens auch außerhalb von X.

von Wilhelm M. (wimalopaan)


Lesenswert?

Roland schrieb:
> Zeile 8 bei ClassY.cpp funktioniert nicht was mache ich falsch? :/

Du hast eine Elementfunktion deklariert, aber nicht definiert.
Definiert hast Du stattdessen eine freie Funktion.

Und ja: nimm ein C++ Buch und lass diesen M$ __fastcall Scheiß weg.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.