Problem mit Funktionen auf eigene private Variable in Klasse zuzugreifen



  • ehrlich gesagt hab ich keinen überblick über dein programm, d ablicke ich jetzt auf die schnelle auch nicht durch

    welche zeile in deinem geposteten quellcode?



  • In Zeile 49-59 wird es mMn in die variable geschriebn.

    dann in Z.86 ausgegeben.

    Die Variable ist deklariert in der Headerdate in Zeile 40



  • Wo wird denn convertStringToDouble erstellt und worum handelt es sich?
    Btw: Kannst du die eine lange Codezeile umbrechen bitte, mein Browser läuft hier auf dem zweiten, kleinen Monitor 😉
    PS: Wer sponsort mir einen zweiten, großen Monitor, es ist doch bald Weihnachten 😉 :xmas1:



  • convertStringToDuoble ist ein stringstream.

    ich hatte es schon mit atof versucht, leider funktioniert das nicht.

    Habe den Code jetzt mal für dich verbessert.

    EDIT:
    atof funktioniert jetzt doch. habe and den string noch ein .c_str() drangehangen.



  • Hab mir jetzt mal das eingelesene anzeigen lassen.

    code gekürzt:

    //solarCoordinateTransformation.cpp
    
    #include <iostream>
    #include <fstream>
    #include <sstream>
    #define _USE_MATH_DEFINES
    #include <math.h>
    #include "solarCoordinateTransformation.h"
    
    using namespace std;
    
    bool solarCoordinateTransformation::readFromFileForCalculating(fileInformation readFromFileInformation) {
    
    /*.....*/
    
    		informationForCalculating.b0 = atof(fileContent[1].substr (10,15).c_str());
    		informationForCalculating.l0 = atof(fileContent[2].substr (10,15).c_str());
    		informationForCalculating.pAngle = atof(fileContent[3].substr (10,15).c_str());
    		if (fileContent[4].substr(10,4) ==  "SESW") {
    			informationForCalculating.satelliteState = true;
    		} else {
    			informationForCalculating.satelliteState = false;
    		}
    		cout << "einlesen: " << "	" << informationForCalculating.b0 << "	" << informationForCalculating.l0 << "	"
                            << informationForCalculating.pAngle << "	" << informationForCalculating.satelliteState;
    
                //Hier stimmt es. Das richtige wird mir angezeigt.
    
    /*.......*/
    	return successful;
    }
    
    sunspotCoordinates solarCoordinateTransformation::getSolarCoordinatesFromImageCoordinates(imageCoordinates coordinatesForCalculating) {
    
    /*.......*/
    
    	cout << informationForCalculating.b0 << "	" << informationForCalculating.l0 << "	" << informationForCalculating.pAngle 
                        << "	" << informationForCalculating.satelliteState << endl;
          //Heir wird mir das falsche ausgegeben.
    /*.......*/
    
    }
    

    Hat hier jemand eine Idee? Ich weiss nicht mehr weiter 😕
    Die header Datei habe ich nicht verändert.



  • Wie werden die beiden methoden der Klasse aufgerufen?



  • Ja das werden sie mMn. Ich header Datei mit der Klasse ist im ersten Post.

    Falls was falsch ist sag es mir bitte.

    Wie meinst du das? Also wie sie im int main aufgerufwn werden?



  • Crysis_02 schrieb:

    Wie meinst du das? Also wie sie im int main aufgerufwn werden?

    ja das meine ich.



  • Kann ich dir erst sagen wenn ich heute abend zuhause bin.



  • So. Nun bin ich zuhase und habe selbst das Problem gefunden. Ich hatte der Klasse immer wenn ich eine Funktion aufgerufen habe einen neuen Instanzname gegeben. So funktioniert es nun 🙂


Anmelden zum Antworten