bitte helft mir habe schon viele gefragt und keiner wusst warum...



  • ... wieso kann ich den keine private variable ausgeben!!! Hat das was mit dem copyconstructor zu tun!!

    will die private variable int sendeLeistung über void Handy::mehrSendeleistung() ausgeben, eigentlich will ich die sendeleistung da erhöhen aber er lässt mich nicht damit arbeiten und sagt mir immer: 'sendeLeistun': nicht deklarierter Bezeichner!!

    hier mein header und meine cpp und meine main!

    hier die header:

    #pragma once
    
    class Handy
    {
    private:
    	char* name;
    	int sendeLeistung;
    	float akkuLadung;
    	int akkuKapazitaet;
    	float akkuSpannung;
    
    public:
    	Handy(int eineSendeleistung, int eineAkkukapazitaet, char* einName);
    	Handy();
    	~Handy(void);
    	void mehrSendeleistung();
    	void wenigerSendeleistung();
    	void beginnGespraech();
    	void beendeGespraech();
    	void wait(double seconds);
    
    };
    

    hier die cpp:

    #include "Handy.h"
    #include <iostream>
    
    using namespace std;
    
    Handy::Handy(int eineSendeleistung, int eineAkkukapazitaet, char* einName) : sendeLeistung(eineSendeleistung), akkuKapazitaet(eineAkkukapazitaet), name(einName)
    {
    	//sendeLeistung = eineSendeleistung;
    	//akkuKapazitaet = eineAkkukapazitaet;
    	//name = einName;
    }
    
    Handy::Handy()
    {
    
    }
    
    Handy::~Handy(void)
    {
    	cout << "Sendeleistung: " << sendeLeistung << endl
    		<< "Akkukapazitaet: " << akkuKapazitaet << endl
    		<< "Name des Handy's: " << name << endl << endl;
    }
    
    void mehrSendeleistung()
    {
    	//int sdl;
    
    	//sdl = sendeLeistung;
    
    	cout << "Sendeleistung neu: " << sendeLeistung << endl;
    //	sendeLeistung=sendeLeistung < 2000 ? sendeLeistung +=100 : sendeLeistung;
    
    }
    void wenigerSendeleistung()
    {
    }
    
    void beginnGespraech()
    {
    }
    
    void beendeGespraech()
    {
    }
    
    void Handy::wait(double seconds)
    {
    }
    

    hier meine kleine main:

    #include <iostream>
    #include "Ladestation.h"
    #include "Handy.h"
    #include <string>
    
    using namespace std;
    
    int main()
    {
    	Handy mobil(200,100,"Nokia e65");
    	Ladestation loadstation("Nas",100);
    
    	mobil.mehrSendeleistung();
    
    	//mobil.mehrSendeleistung();
    
    	return 0;
    }
    


  • Du musst vor die Memberfunktionen auch noch ein "Handy::" setzen, nach dem Typ, direkt vor den Namen. Quasi "void Handy::mehrSendeleistung()". Sonst wärs ja eine freistehende Funktion und keine Funktion der Klasse :p



  • Für Dumme, ersetze das:

    void mehrSendeleistung() { 
        //int sdl; 
    
        //sdl = sendeLeistung; 
    
        cout << "Sendeleistung neu: " << sendeLeistung << endl; 
    //    sendeLeistung=sendeLeistung < 2000 ? sendeLeistung +=100 : sendeLeistung; 
    
    }
    

    mit dem:

    void Handy::mehrSendeleistung() 
    { 
        //int sdl; 
    
        //sdl = sendeLeistung; 
    
        cout << "Sendeleistung neu: " << sendeLeistung << endl; 
    //    sendeLeistung=sendeLeistung < 2000 ? sendeLeistung +=100 : sendeLeistung; 
    
    }
    

    😃



  • anfänger110 schrieb:

    ... bitte helft mir habe schon viele gefragt und keiner wusst warum...

    Bist Du sicher, dass das ein aussagekräftiger Threadtitel ist ?
    Oder bist Du sicher, dass jeder in diesem Forum jeden Thread anklicken möchte ?

    Gruß,

    Simon2.


Anmelden zum Antworten