frage zu zeigern
-
ich wollte eigentlich nur wissen warum man in diesem beispiel:
class simpleNet{ private: float **ihWeights, **hoWeights; float **ihWDelta, **hoWDelta; float *inI, *inH, *inO; float *outI, *outH, *outO; float *errH, *errO, *prefO, *diffO; int amountI, amountH, amountO; float errTol, learnRate, impuls; void setZero(); void mem_alloc(int dimI, int dimH, int dimO); void backprop(); public: simpleNet(int dimI, int dimH, int dimO); simpleNet(int dimI, int dimH, int dimO, float **ihW, float **hoW); simpleNet(char* filename); ~simpleNet(); bool saveWeightsToFile(char* filename); float getE(); float *getOutput(); float *getODiff(); void setErrTolerance(float tol); void setLearnRate(float rate); void setImpuls(float imp); float *run(float *input); bool train(float *input, float *pOutput); };float *getOutput();einen zeiger verwendet hat?
warum verwendet man zeiger an fkt.float *simpleNet::getOutput(){ return outO; }

-
Ich vermute, dass es bei den Output um ein Array von Floats handelt, dessen Startadresse zurückgeliefert wird.
-
Ich glaube der Fragesteller denkt, das die Funktion ein Pointer hat/ist. Ihm ist nicht bewusst, das der Rückgabetyp ein Pointer ist. Denn so ist es für einen Anfänger eher verständlich:
float* getOutput();
-
aso, stimmt der rückgabetyp ist ein zeiger!
hat das eine best. bewandnis. eine normale variable hätte doch den selben effekt?
-
//edit^^
-
irre ich mich? eigentlich kann man doch auf zeiger fast vollständig verzichten! es ist fast alles auch mit referenzen möglich. lediglich die arrays sind sinnvoll?!
oder?
-
Du kriegst einen Zeiger auf float's, da du ja mehrere Ausgabeneuronen hast.
Also ein Array von auf float.Jockel
-
man kann viel mit Referenzen anstatt mit Zeigern machen, stimmt schon, aber dann doch nich fast alles.
Alles was zum Beispiel über dynamische Speicherverwallung läuft. da brauchst du Zeiger