private Methode benutzt private Methode
-
Hey,
ich hab n problem,
ich versteh das problem nicht... vielleicht könnt ihr mir helfen.Ich hab eine classe Matrx in der ist eine methode determinante() die public ist.
die ruft wenn eine 4x4 Matrix eingegeben wird eine methode laplace() die private ist auf. und laplace ruft dann wieder eine andere Methode sarrus() die private ist auf.und wenn ich erstellen mache kommt immer ein fehler wenn sarrus() private ist.
wenn ich es public mache funktioniert es....Was kann da schief gehen?
danke schonmal
MfG 82kolu
-
So wie du es beschreibst sollte es kein Problem sein. Kannst du deinen Code (oder eine auf Problem reduzierte Version davon) mal posten?
-
Danke
-
Jetzt noch mal mit cpp-Tags, ordentlich formatiert und mit Kenntlichmachung der problematischen Stelle.
-
Tachyon schrieb:
Jetzt noch mal mit cpp-Tags, ordentlich formatiert und mit Kenntlichmachung der problematischen Stelle.
Bitte was?
-
Matrix3<T>ist nicht die selbe Klasse wieMatrix<T, R, C>, deshalb hatMatrix<T, R, C>auch keinen Zugriff auf private Elemente vonMatrix3<T>
-
82kolu schrieb:
Tachyon schrieb:
Jetzt noch mal mit cpp-Tags, ordentlich formatiert und mit Kenntlichmachung der problematischen Stelle.
Bitte was?
Du sollst Deinen Code ordentlich posten und cpp-Tags benutzen. Dann sieht das z.B. so aus:
int bla(int faser) { globber(faser); }
-
Tachyon schrieb:
Matrix3<T>ist nicht die selbe Klasse wieMatrix<T, R, C>, deshalb hatMatrix<T, R, C>auch keinen Zugriff auf private Elemente vonMatrix3<T>und das funktioniert nur deshalb nicht weil ich es private gemacht habe?
also davor hat es geklappt... (verständnisprobleme...)bei mir
-
Tachyon schrieb:
Matrix3<T>ist nicht die selbe Klasse wieMatrix<T, R, C>, deshalb hatMatrix<T, R, C>auch keinen Zugriff auf private Elemente vonMatrix3<T>also daran lag es nicht.
-
ja genau. private sagt: niemand ausser der Klasse selbst kann auf die Methode zugreifen.
Unabhängig davon: wozu brauchst du die Determinante überhaupt? Ich wittere da sinnlose Programmieranstrengungen

-
otze schrieb:
ja genau. private sagt: niemand ausser der Klasse selbst kann auf die Methode zugreifen.
Unabhängig davon: wozu brauchst du die Determinante überhaupt? Ich wittere da sinnlose Programmieranstrengungen

Sollte ja eig kein problem sein von public auf private zu machen... irgendwo muss ich n denkfehler haben ^^ bevor der draußen ist kann ich nicht schlafen ^^
-
82kolu schrieb:
otze schrieb:
ja genau. private sagt: niemand ausser der Klasse selbst kann auf die Methode zugreifen.
Unabhängig davon: wozu brauchst du die Determinante überhaupt? Ich wittere da sinnlose Programmieranstrengungen

Sollte ja eig kein problem sein von public auf private zu machen... irgendwo muss ich n denkfehler haben ^^ bevor der draußen ist kann ich nicht schlafen ^^
otze meinte wohl eher das Ausrechnen der Determinante. Das ist nämlich (genauso wie das ausrechnen der Inversen einer Matrix) etwas, was man nur in der Theorie benutzt, um damit irgendwas zu beweisen, aber in praktischer Numerik tunlichst vermeidet, da praktisch immer unnötig und sehr rechenaufwendig.
-
SeppJ schrieb:
82kolu schrieb:
otze schrieb:
ja genau. private sagt: niemand ausser der Klasse selbst kann auf die Methode zugreifen.
Unabhängig davon: wozu brauchst du die Determinante überhaupt? Ich wittere da sinnlose Programmieranstrengungen

Sollte ja eig kein problem sein von public auf private zu machen... irgendwo muss ich n denkfehler haben ^^ bevor der draußen ist kann ich nicht schlafen ^^
otze meinte wohl eher das Ausrechnen der Determinante. Das ist nämlich (genauso wie das ausrechnen der Inversen einer Matrix) etwas, was man nur in der Theorie benutzt, um damit irgendwas zu beweisen, aber in praktischer Numerik tunlichst vermeidet, da praktisch immer unnötig und sehr rechenaufwendig.
Ja egal, ich will trotzdem wissen wo der fehler ist

-
Es liegt wie gesagt daran, dass Objekte einer Klasse A nicht auf private Member von Objekten einer Klasse B zugreifen können.
-
Tachyon schrieb:
Es liegt wie gesagt daran, dass Objekte einer Klasse A nicht auf private Member von Objekten einer Klasse B zugreifen können.
Sieht so aus als ob er das nicht verstanden hätte.
http://de.wikibooks.org/wiki/C++-Programmierung:_Klassen
-
7xCore schrieb:
Tachyon schrieb:
Es liegt wie gesagt daran, dass Objekte einer Klasse A nicht auf private Member von Objekten einer Klasse B zugreifen können.
Sieht so aus als ob er das nicht verstanden hätte.
http://de.wikibooks.org/wiki/C++-Programmierung:_Klassenalso wnen ich es richtig verstanden hab, soll ich aus Matrix3<T> Matrix<T,3,3> machen, richtig?
weil das hab ich gemacht und es ist immernoch falsch
-
82kolu schrieb:
7xCore schrieb:
Tachyon schrieb:
Es liegt wie gesagt daran, dass Objekte einer Klasse A nicht auf private Member von Objekten einer Klasse B zugreifen können.
Sieht so aus als ob er das nicht verstanden hätte.
http://de.wikibooks.org/wiki/C++-Programmierung:_Klassenalso wnen ich es richtig verstanden hab, soll ich aus Matrix3<T> Matrix<T,3,3> machen, richtig?
weil das hab ich gemacht und es ist immernoch falschWenn Du aus einer
Matrix<T,4,5>auf eineMatrix<T,3,3>zugreifst, dann geht es immer noch nicht, weil es immernoch unterschiedliche Klassen sind. Du kannst aus einemMatrix<T,4,5>-Objekt nur auf private Member von anderenMatrix<T,4,5>-Objekten zugreifen, aber nicht auf private Member von z.B.Matrix<T,3,3>-Objekten. Sobald sein Templateparameter unterschiedlich ist, hast Du auch unterschiedliche Templateklassen.
-
Tachyon schrieb:
82kolu schrieb:
7xCore schrieb:
Tachyon schrieb:
Es liegt wie gesagt daran, dass Objekte einer Klasse A nicht auf private Member von Objekten einer Klasse B zugreifen können.
Sieht so aus als ob er das nicht verstanden hätte.
http://de.wikibooks.org/wiki/C++-Programmierung:_Klassenalso wnen ich es richtig verstanden hab, soll ich aus Matrix3<T> Matrix<T,3,3> machen, richtig?
weil das hab ich gemacht und es ist immernoch falschWenn Du aus einer
Matrix<T,4,5>auf eineMatrix<T,3,3>zugreifst, dann geht es immer noch nicht, weil es immernoch unterschiedliche Klassen sind. Du kannst aus einemMatrix<T,4,5>-Objekt nur auf private Member von anderenMatrix<T,4,5>-Objekten zugreifen, aber nicht auf private Member von z.B.Matrix<T,3,3>-Objekten. Sobald sein Templateparameter unterschiedlich ist, hast Du auch unterschiedliche Templateklassen.ich hab schon abfragen gemacht das es nur eine 3x3 matrix sein kann die da aufgerufen wird. es kann also gar nie eine 4x5 Matrix aufgerufen werden.
-
Dann zeig mal Code her. Am besten welcher, der auch compilierbar ist.
-
close