Anfängerproblem



  • Hallo!

    Ich bin ein C++ Neuling und habe ein (Noob-)Problem.

    Ich habe eine Klasse erstellt

    class kegel 
    {
    	float h, r1, r2, pi;
    
    	public:
    		kegel(float h=10.0f, float r1=5.0f, float r2=0.0f, static double pi=4.0*atan(1.0)):h(h), r1(r1), r2(r2), pi(pi)
    		{
    			cout	<<"Konstruktor kegel\n"
    					<<"h = "<<this->h
    					<<"\nr1 = "<<this->r1
    					<<"\nr2 = "<<this->r2<<endl;
    		}
             ~kegel()
    		{
    			h=10.0f; r1=5.0f; r2=0.0f;
    			cout	<<"\nDestruktor kegel\n"<<endl;
    		}
    }
    

    und möchte nun im Main die Wert h ausgeben (auf der Console).
    Wie bekomme ich das hin ohne noch weiteren Code in die Klasse zu scheiben zu müssen?

    So scheint es ja nicht zu funktionieren:

    void main()
    {
    	kegel k;
    	k.ein();
    	cout.flags(ios::fixed);
    	cout<<setprecision(4)<<"\nh  = "<<setw(10)<<k->h; // <- hier soll h ausgegeben werden
    }
    


  • Hier mal eine lauffähige Variante:

    #include <iostream>
    #include <iomanip>
    #include <cmath>
    
    using namespace std;
    
    class kegel 
    { 
    	float h_, r1_, r2_, pi_; 
    
    public: 
    	kegel(float h=10.0f, float r1=5.0f, float r2=0.0f, float pi=4.0*atan(1.0))
    	: h_(h), r1_(r1), r2_(r2), pi_(pi)
    	{ 
    		cout	<< "Konstruktor kegel\n" 
    				<< "h = " << this->h_ 
    				<< "\nr1 = " << this->r1_ 
    				<< "\nr2 = " << this->r2_ << endl; 
    	} 
    	~kegel() 
    	{ 
    		cout << "\nDestruktor kegel\n" << endl; 
    	}
    
    	float gibHoehe() const
    	{
    		return this->h_;
    	}
    };
    
    int main()
    {
    	kegel k;
    	cout.flags(ios::fixed); 
    	cout<<setprecision(4) << "\nh  = " << setw(10)<< k.gibHoehe();
    }
    

    1. Benutzte bitte C++ Tags
    2. Ist das hier leider das falsche Forum (C++ wäre korrekt).
    3. Verwende für Member Variablen (z.B. h_) einen anderen Namen als für ein Argument (wie z.B. h).
    4. Am Ende der Klassen Definition fehlt ein ;

    Gruss Simon



  • Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Vielen Dank für die überaus schnelle Hilfe!

    Ich habe noch eine weiter Frage zu diesem Thema:
    Ist es auch möglich im Main die Variable h (von k) auszugeben ohne in der Klasse weitern Code (wie im Beispiel "gibHoehe") zu schreiben?



  • N0Sferatu schrieb:

    Ist es auch möglich im Main die Variable h (von k) auszugeben ohne in der Klasse weitern Code (wie im Beispiel "gibHoehe") zu schreiben?

    Du könntest die Variable öffentlich machen und direkt darauf zugreifen. Allerdings rate ich dir nicht dazu, da damit die Kapselung verloren geht. So schlimm ist der Code für die Memberfunktion ja nicht...


Log in to reply