[Anfänger] Wie gebe ich Variablen aus einer Klasse aus



  • Husker schrieb:

    Hallo,
    ich scheitere gerade an einer Grundsatzgechichte
    ich habe mir eine kleine Klasse geschieben die ein paar Stringwerte hält.
    nun möchte ich diese über cout in einer Klassen eigene Funktion ausgeben und bekomme es einfach nicht hin 😞

    hier erstmal die Klasse:

    /*
     * LogObject.cpp
     *
     *  Created on: 21.03.2017
     *      Author: husker
     */
    
    #include "LogObject.h"
    
    namespace std
    {
    	/**
    	 * Constructor
    	 */
    	LogObject::LogObject()
    	{
    
    	}
    
    	LogObject::~LogObject()
    	{
    
    	}
    
    	/*
    	 * Setter:
    	 * =======================================================================================================================
    	 */
    
    	void LogObject::setDate(std::string date)
    	{
    		this->ldate = date;
    	}
    
    	void LogObject::setTime(std::string time)
    	{
    		this->ltime = time;
    	}
    
    	void LogObject::setCip(std::string cip)
    	{
    		this->cip = cip;
    	}
    
    	void LogObject::setCSusername(std::string csusername)
    	{
    		this->csusername = csusername;
    	}
    
    	void LogObject::setSComputername(std::string scomputername)
    	{
    		this->scomputername = scomputername;
    	}
    
    	void LogObject::setSPort(std::string sport)
    	{
    		this->sport = sport;
    	}
    
    	void LogObject::setCSmethod(std::string csmethod)
    	{
    		this->csmethod = csmethod;
    	}
    
    	void LogObject::setCSuristem(std::string csuristem)
    	{
    		this->csuristem = csuristem;
    	}
    
    	void LogObject::setSCstatus(std::string scstatus)
    	{
    		this->scstatus = scstatus;
    	}
    
    	void LogObject::setSCwin32status(std::string scwin32status)
    	{
    		this->scwin32status = scwin32status;
    	}
    
    	void LogObject::setSCsubstatu(std::string scsubstatu)
    	{
    		this->scsubstatu = scsubstatu;
    	}
    
    	void LogObject::setXfullpath(std::string xfullpath)
    	{
    		this->xfullpath = xfullpath;
    	}
    
    	/*
    	 * Getter:
    	 * =======================================================================================================================
    	 */
    	std::string LogObject::getDate()
    	{
    		return ldate;
    	}
    
    	std::string LogObject::getTime()
    	{
    		return ltime;
    	}
    
    	/*
    	 * Functions:
    	 * =======================================================================================================================
    	 */
    
    	void writeOUT()
    	{
    		cout << "" << " " << "" << endl;
    	}
    }
    

    fehlt oben nicht ein "class LogObject"?



  • manni66 schrieb:

    Wie kommst du auf die Idee, deine Klasse im namespace std zu definieren?

    das war nicht meine,
    eclipse, wollte nicht ohne angabe eines Namespace die klasse erstellen,
    ist das falsch?


  • Mod

    Andromeda schrieb:

    fehlt oben nicht ein "class LogObject"?

    Nein, das wird wohl in LogObject.h stehen.



  • daddy_felix schrieb:

    Du musst dir erst eine Instanz dieser Klasse erstellen:

    void writeOUT()
    {
      LogObject myLog;
      myLog.setDate("21.03.2017");
      myLog.setTime("14:31");
      cout << myLog.getDate() << " " << myLog.getTime() << endl;
    }
    

    ach, ich sehe gerade, das gehört zu der Klasse... dann einfach so:

    void LogObject::writeOUT()
    {
      cout << ldate << " " << ltime << endl;
    }
    

    ja das scheint zu funktionieren 🙂
    Danke !


  • Mod

    Husker schrieb:

    ja das scheint zu funktionieren 🙂
    Danke !

    Ich bitte dich auch sehr, manni66s Kommentar zur Kenntnis zu nehmen. Definier nichts in std!



  • SeppJ schrieb:

    Husker schrieb:

    ja das scheint zu funktionieren 🙂
    Danke !

    Ich bitte dich auch sehr, manni66s Kommentar zur Kenntnis zu nehmen. Definier nichts in std!

    Als ob den TE das in irgendeiner Weise interessiert. Der hat null Ahnung und auch null Interesse. Wie man sowas macht ergoogelt man sich in 5 Sekunden.



  • Husker schrieb:

    manni66 schrieb:

    Wie kommst du auf die Idee, deine Klasse im namespace std zu definieren?

    das war nicht meine,
    eclipse, wollte nicht ohne angabe eines Namespace die klasse erstellen,
    ist das falsch?

    Ja! Du darfst natürlich einen eigenen Namen erfinden, wenn Eclipse das unbedingt will. C++ selber kommt auch ohne den Namespace aus.



  • SeppJ schrieb:

    Husker schrieb:

    ja das scheint zu funktionieren 🙂
    Danke !

    Ich bitte dich auch sehr, manni66s Kommentar zur Kenntnis zu nehmen. Definier nichts in std!

    okay werde versuchen das wieder auszubauen,
    habe in Eclipse in zwischen auch den Schalter gefunden,
    aber kannst du kurz erläutern warum das schlecht ist?



  • kein_interesse schrieb:

    SeppJ schrieb:

    Husker schrieb:

    ja das scheint zu funktionieren 🙂
    Danke !

    Ich bitte dich auch sehr, manni66s Kommentar zur Kenntnis zu nehmen. Definier nichts in std!

    Als ob den TE das in irgendeiner Weise interessiert. Der hat null Ahnung und auch null Interesse. Wie man sowas macht ergoogelt man sich in 5 Sekunden.

    das interessiert mich schon,
    die sache mit den Namespaces ist mir zugegebener weise noch nicht ganz klar



  • Schau einfach mal hier rein: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/n4582.pdf, Abschnitt 17.6.4.2.1

    Du hast UB, wenn du eigene Typen in std definierst.


Anmelden zum Antworten