Fehler: Kein Zugriff auf private Member, dessen deklaration bereits in der Klasse erfolgte.



  • Hallo,

    Ich bin in C++ ein absoluter Neuling. Ich versuche gerade eine Aufgabe zu lösen, hänge jedoch an einem Fehler fest. Ich bekomme es nicht hin im Konstruktor die Werte zu Initialisieren. Es kommt bei mir immer die Fehlermeldung: "Kein Zugriff auf private Member, dessen deklaration bereits in der Klasse erfolgte".

    #ifndef TAXI_H
    #define TAXI_H
    
    class Taxi {
    	//Taxi(double fahrpreis, double verbrauch, int maxTankinhalt) : m_verbrauch(verbrauch), m_fahrpreis(fahrpreis), m_maxTankinhalt(maxTankinhalt){
    	Taxi(double kilometerstand, double fahrpreis, double verbrauch, int maxTankinhalt) {
    		m_kilometerstand = kilometerstand;
    		m_verbrauch = verbrauch;
    		m_fahrpreis = fahrpreis;
    		m_maxTankinhalt = maxTankinhalt;
    
    		std::cout << "Taxi wurde Initialisiert!" << std::endl; 
    		m_aktTankinhalt = m_maxTankinhalt;
    		m_geldbilanz = 0;
    		}
    
    	void fahrtVerbuchen(double entfernung,  bool dienstlich);
    	void tanken(double aktBenzinpreis);
    	void ausgabe();
    
    private:
    	double m_kilometerstand;
    	int m_aktTankinhalt;
    	int m_maxTankinhalt;
    	double m_verbrauch;
    	double m_fahrpreis;
    	double m_geldbilanz;
    
    };
    
    #endif
    
    #include <iostream>
    #include "Taxi.h"
    int main() 
    {
    
    	Taxi taxi1(20000,6,7,80);
    
    	return 0;
    }
    

    Würde mich freuen, wenn ihr weiterhelfen könnt.



  • Elemente in Klassen sind standardmäßig privat, nicht offen zugänglich. Du musst deinen Konstruktor und die Funktionen, die aufgerufen werden können, also entsprechend deklarieren.



  • Ich dachte das der Kontruktor schreibrechte im Privatebereich hat, da dieser ja in der Klasse steht. Hast du vielleicht ein bsp wie ich den Konstruktor deklarieren müsste?



  • In deiner Klasse ist alles private - auch der Konstruktor! Es fehlt ein public

    class Taxi { 
    public:
    


  • ohh.. vielen Dank!!!


Anmelden zum Antworten