ZUGRIFF AUF SUBELEMENTE EINER KLASSE
-
Hi,
ich möchte eine Klasse mVolume erstellen, die auf Ihre Nachbarelemente aus einem Feld (DV[0-3]) zugreifen kann (s. Skizze). Wie realisiere ich das in der Klasse?
Ich habe den Bsp-Code angehangen. Um das gesamte Volumen eines Elementes (DV[1]) berechnen zu können, muss in der Funktion getVolume überprüft werden, ob Datenfeld-Elemente mit den Indizes 0 bzw. 2 vorhanden sind, um deren xP- und yP-Koordinaten auszulesen.
#######################################################
# DV[0] # DV[1] # DV[2] # DV[3] #
#######################################################
# xP=0 # xP=4 # xP=10 # xP=22 #
# yP=0 # yP=1 # yP=2 # yP=4 #
#######################################################// ****************************************************************************************************************************** class mVolume { private: double xP; double yP; public: double getVolume(); double getWall_N(); double getWall_S(); double getWall_E(); double getWall_W(); }; double mVolume::getVolume() { return 0; } double mVolume::getWall_N() { return 0; } double mVolume::getWall_S() { return 0; } double mVolume::getWall_E() { return 0; } double mVolume::getWall_W() { return 0; } // ****************************************************************************************************************************** void gotoxy(int x, int y) { COORD coords; HANDLE Hnd = GetStdHandle(STD_OUTPUT_HANDLE); if (Hnd == INVALID_HANDLE_VALUE) return; coords.X = (x - 1); coords.Y = (y - 1); SetConsoleCursorPosition(Hnd, coords); } int main(void) { int n = 10; mVolume *DV; DV = new mVolume[n]; cout<< "Done.\n\n"; }
-
1.)Es heisst
int main(...und nicht
void main(...2.)Wenn ALLE Elemente deine Klasse private sind wirst du nicht viel Spass
damit haben. Insbesondere kompiliert dein Beipiel schon garnicht.3.)Verwendet man zusammen mit Klassen kein malloc sondern new.
4.)Hast du das zu malloc gehörende free vergessen.
-
ich möchte eine Klasse mVolume erstellen, die auf Ihre Nachbarelemente aus einem Feld (DV[0-3]) zugreifen kann (s. Skizze). Ich habe den Bsp-Code angehangen.
Um das gesamte Volumen eines Elementes (DV[1]) berechnen zu können, muss in der Funktion getVolume überprüft werden, ob Datenfeld-Elemente mit den Indizes 0 bzw. 2 vorhanden sind, um deren xP- und yP-Koordinaten auszulesen.Und worum gehts jetzt?
@W2K2005:
Anstatt deinen Code dauernd zu editieren könntest du ihn in der fertigen Version doch einfach neu posten.....
-
Wie kann ich in der Funktion getVolume herausfinden
a) auf welches Element von *DV gerade zugegriffen wird,
b) und ob noch weitere Elemente mit größeren Indizes existieren.Außerdem möchte ich in getVolume auf das Element [i] von DV* zugreifen, um den Wert xP auszulesen. Wie geht das?
Vielen Dank.
-
W2K2005 schrieb:
a) auf welches Element von *DV gerade zugegriffen wird,
geht nicht*
W2K2005 schrieb:
b) und ob noch weitere Elemente mit größeren Indizes existieren.
geht nicht*
W2K2005 schrieb:
Außerdem möchte ich in getVolume auf das Element [i] von DV* zugreifen, um den Wert xP auszulesen. Wie geht das?
geht nicht*
Ohne auch nur ein anständiges OO-Konzept zu verwenden.
-
a) auf welches Element von *DV gerade zugegriffen wird,
Indem du bei den Funktionsparametern den Elementindex übergibst....
b) und ob noch weitere Elemente mit größeren Indizes existieren.
Indem du überprüfst ob es noch weitere Elemente gibt und den eigenen Index mit den anderen vergleichst...wenn die Anzahl größer ist als der Index->treffer
Außerdem möchte ich in getVolume auf das Element [i] von DV* zugreifen, um den Wert xP auszulesen. Wie geht das?
indem du einen Pointer auf ein objekt vom typ deiner elemente übergibst ....