Kein Zugriff auf private Member, dessen Deklaration in der TV-Klasse erfolgte.



  • Hi ich lerne z.z. c++ und bin grad bei den klassen angekommen und versteh nicht ganz was ich falch gemacht habe ich habe wie aus meinem lehrbuch(bei ein ähnlichen code) alles initialiesiert aber trotzdem verweigert es mir den zugriff würde mich freun wen jemand sich die zeit nimmt und es sich mal ankuckt 🙂 btw. zu meine rechtschreibung hab vom audiodaktiven her probleme mit den schreiben normalerweise geh ich vorher noch mal alles durch hab aber leider keine zeit mehr weil ich gleich weg muss.

    // 6.1 TV.cpp: Hauptprojektdatei.
    
    #include "stdafx.h"
    
    using namespace System;
    ref class TV{
    		Int32 volumen;
    		Int32 program;
    		Int32 on_off;
    
    	public:
    		Void init();
    		Void vol(TV ^tvx);
    		Void pro(TV ^tvx);
    		Void on(TV ^tvx);
    		Void off(TV ^tvx);
    };
    Void TV::init(){
    	volumen = 0;
    	program = 0;
    	on_off = 2;
    }
    
    Void TV::vol(TV ^tvx){
    
    	Console::WriteLine("Geben sie die Lautstärke ein.");
    		tvx->volumen = Convert::ToInt32(Console::ReadLine());
    	Console::WriteLine("Die Lautstärke steht jetzt auf {0}.",tvx->volumen);
    }
    
    Void TV::pro(TV ^tvx){
    	Console::WriteLine("Geben sie das Program ein.");
    		tvx->program = Convert::ToInt32(Console::ReadLine());
    		Console::WriteLine("Das Program ist jetzt {0}.",tvx->program);
    }
    
    //Void TV:: on(TV ^tvx){   //ist nicht relevant für mein problem
    //
    //	if(tv1->on_off = 1){
    //		switsh(3)
    //			case "[1] das Program  ändern"
    //			tv1->pro(tv1);
    //		case "[2] die Lautstärke ändern"
    //			vol();
    //			case "[3] den TV abschalten"
    //				tv1->off(tv1);
    Void TV::off(TV ^tvx){
    
    	Console::WriteLine("Soll der Fernseher abgeschaltet werden?");
    	Console::WriteLine("1=Ja 2=Nein");
    	tvx->on_off = Convert::ToInt32(Console::ReadLine());
    
    	if(tvx->on_off != 1 || 2)
    		Console::WriteLine("Sie müssen 1(Ja) oder 2(Nein) eingeben.");
    		tvx->on_off = 1;
    		tvx->off(tvx);
    	}
    
    int main(array<System::String ^> ^args)
    {
    	Int32 switchvar = 0;
    	TV ^tv1;
    	tv1 = gcnew TV;
    	tv1->init();
    	Int32 i;
    for(i=1;i<0;i++){
    		if(tv1->on_off = 1){
    		    while(switchvar!=3) 
        { 
    
            Console::WriteLine("[1] das Program  ändern"); 
            Console::WriteLine("[2] die Lautstärke ändern"); 
            Console::WriteLine("[3] den TV abschalten"); 
    
            switchvar = Convert::ToInt32(Console::ReadLine()); 
        switch (switchvar) 
        { 
        case 1: 
        tv1->pro(tv1);
        break; 
        case 2: 
        tv1->vol(tv1);
        break; 
        case 3: 
        tv1->off(tv1);
    	break;
        default: 
            Console::WriteLine("Falsche Eingabe"); 
        } 
        } 
    		if(tv1->on_off = 2){
    	Console::WriteLine("Soll der Fernseher angeschaltet werden?");
    	Console::WriteLine("1=Ja 2=Nein");
    tv1->on_off = Convert::ToInt32(Console::ReadLine()); 
    	if(tv1->on_off != 2 || 1)
    		Console::WriteLine("Sie müssen 1(Ja) oder 2(Nein) eingeben.");
    		tv1->on_off = 2;
    		continue;
    	}
    
    }
    
    }
    	Console::Read();
        return 0;
    }
    


  • Dir ist schon klar, was "private" bedeutet? Das heißt, daß nur Methoden der Klasse darauf zugreifen dürfen. Und die Member-Variablen sind privat.

    PS: Wozu übergibst du den Klassenmethoden eigentlich noch einen Parameter mit dem verarbeiteten Objekt? Die Methode bekommt doch schon ein Objekt (als this) übergeben.



  • thx für die Antwort hat mir tatsächlich geholfen es richtig zu machen 😃


Anmelden zum Antworten