Hilfe benötigt!! Problem bei überprüfung eines Wertes (globale Variable oder in der .cpp einer Klasse?)



  • Fehler



  • Also:
    1. Verwende Code-Tags
    Hättest du sie verwendet, hätte ich mir sogar deinen Code angeschaut.

    // Drück Zitieren um zu sehen wie´s geht.
    

    2. Es gibt keine If-Schleifen, höchstens If-Anweisungen.

    3. Man kann keine globalen Variablen in main anlegen, das muss man außerhalb machen

    Gruß
    Don06



  • Zeig mal deinen ganzen Code ... der soweit man es bisher sieht ziemlich grober Mist ^^ Achja ... wenn du als Return-Value int hast, musst du auch nen int zurückgeben. Nimm void und der meckert nicht.



  • Fehler



  • Ich glaube, dass sich mehr Leute den Code anschauen würden, wenn du ihn in den entsprechenden Tag ([cpp]) setzt.



  • Sorry bin zum ersten mal in so einem Forum wie mache ich das?
    Danke



  • Einfach vor deinen Code

    und nach deinen Code
    

    setzen.



  • Hallo

    Kurzbeschreibung

    Möchte dann im Programm die Startgebühr abhängig ob jemand Hobbyklasse oder Vereinsläufer ist, ausgeben.

    Vereinsläufer soll dann eine Vererbung von Läufer werden und all Attribute und Methoden übernehmen.

    Bei der Eingabe der Läufer wir dan gefragt ob jeamand im Verein ist oder nicht.
    Wenn ja wird ein entsprechender Wert zu gewissen und dann beim Anzeigen der gesamten Läufer mit auf dem Bildschrim angezeigt.

    Hobbläufer soll dann ein Objekt der Klasse LAEUFER werden oder so?............



  • nja hab das jetzt nicht nach deiner beschreibung gemacht sondern deinen Code korrigiert/verbessert:

    #if !defined(WALKER_H__INCLUDED)
    #define WALKER_H__INCLUDED
    
    #if (_MSC_VER > 1000)
    	#pragma once
    #endif // (_MSC_VER > 1000)
    
    #include <string>
    
    class Walker
    {
    public:
    	Walker(const unsigned short&, const std::string&, const std::string&, const char, const bool);
    	~Walker();
    
    public:
    	void	show_data();
    	void	set_time(const float& time)	{ m_time = time;	}
    	bool	is_hobby_run() const	{ return m_itshobby;	}
    
    private:
    	void	calc_payment();
    
    private:
    	int				m_startpos;
    	std::string		m_prename;
    	std::string		m_name;
    	char			m_sex;
    	float			m_time;
    	bool			m_itshobby;
    	int				m_payment;
    };
    
    #endif // WALKER_H__INCLUDED
    
    #include "Walker.h"
    #include <iostream>
    
    Walker::Walker(const unsigned short& start_pos, const std::string& prename, const std::string& name, const char sex, const bool hobby_run) :
    m_startpos(start_pos), m_prename(prename), m_name(name), m_sex((sex == 'm' ? 'm' : (sex == 'f' ? 'f' : 'n'))), m_itshobby(hobby_run), m_payment(0), m_time(0.0f)
    {
    	calc_payment();
    }
    
    Walker::~Walker()
    {
    }
    
    void Walker::show_data()
    {
    	std::cout << m_prename << " " << m_name << " (" << m_sex << "):\n\tStartposition: " << m_startpos << "\n\tStartgebuehr: " << m_payment << << "\n\tHobby: " << m_itshobby << std::endl;
    }
    
    void Walker::calc_payment()
    {
    	m_payment = (m_sex == 'm' ? 1 : 0); // Mann zahlt 1€ mehr.
    	m_payment += (m_itshobby ? 8 : 6); // Hobbyläufer 2€ mehr.
    }
    
    #include "Walker.h"
    
    int main()
    {
    	Walker walker(1, "Peter", "Depp", 'm', true);
    	walker.show_data();
    }
    

    ... hab es nicht getestet ... sollte aber gehen 🙂 Könnte hier auch schön den Streamoperator überladen usw ... aber egal. So geht das schonmal 😉



  • cool

    Danke fürs erste, werden den Code jetzt mal studieren und meinen anpassen, da ich das ja selber können sollte.

    Hast mir aber schon viel geholfen.

    Bis dann



  • Hmm, nur kurz: bist du dir sicher, dass es Sinn macht, Vereinsläufer abzuleiten, Hobbyläufer aber einfach nur als Variable vom Typ Läufer zu erstellen? Wähle eine von beiden Methoden, aber besser die gleiche für beide.


Anmelden zum Antworten