Fehlermeldung



  • Hallo leute kann mir jemand erklären wie ich die Fehlermeldung hier weg bekomme ?

    * CJulianDate.h
     *
     *  Created on: 02.02.2017
     *      Author: mnl
     */
    
    #ifndef MYCODE_CJULIANDATE_H_
    #define MYCODE_CJULIANDATE_H_
    
    #include <string>
    #include<iostream>
    using namespace std;
    
    /**
     * Diese Klasse repräsentiert ein Julianisches Datum ohne Uhrzeit.
     */
    class CJulianDate {
    private:
    	long m_days;
    
    	/**
    	 * Formatiert die übergebene Tagesnummer (1-31) wie folgt: Ist die Zahl
    	 * einstellig, wird ein Leerzeichen vorangestellt (3 --> " 3"). Stimmt
    	 * die Zahl mit dem Tag des von diesem Objekt repräsentierten
    	 * gregorianischen Datums überein, wird das Ergebnis mit eckigen
    	 * Klammern umgeben ("10" --> "[10]"), sonst werden am Anfang und
    	 * am Ende je ein Leerzeichen ergänzt ("10" --> " 10 ").
    	 */
    	std::string formatDayNumber (short day) const;
    public:
    
    	/**
    	 * Erzeugt ein neues Objekt mit dem angegebenen Julianischen Datum.
    	 */
    	CJulianDate(long date = 0);
    
    	/**
    	 * Erzeugt ein neues Objekt, dessen Wert aus dem angegebene Gregorianische Datum
    	 * berechnet wird.
    	 *
    	 * - year: das Jahr
    	 * - month: der Monat (Januar = 1)
    	 * - day: der Tag (erster Tag eines Monats: 1)
    	 */
    	CJulianDate(int year, short month, short day);
    
    	/**
    	 * Liefert das Julianische Datum (Tage seit dem 1. Januar -4712 (4713 v. Chr)).
    	 */
    	long getJulianDate() const;
    
    	/**
    	 * Übernimmt das angegebene Julianische Datum.
    	 */
    	void setJulianDate(long date);
    
    	/**
    	 * Liefert den aktuallen Wert als Gregorianisches Datum.
    	 *
    	 * - year: das Jahr
    	 * - month: der Monat (Januar = 1)
    	 * - day: der Tag (erster Tag eines Monats: 1)
    	 */
    	void toGregorianDate(int& year, short& month, short& day) const;
    
    	/**
    	 * Konvertiert und übernimmt das angegebene Gregorianische Datum.
    	 *
    	 * - year: das Jahr
    	 * - month: der Monat (Januar = 1)
    	 * - day: der Tag (erster Tag eines Monats: 1)
    	 */
    	void fromGregorianDate(int year, short month, short day);
    
    	/**
    	 * Liefert den Wochentag zu dem aktuellen Datum (Montag = 1).
    	 */
    	int dayOfWeek() const;
    
    	/**
    	 * Liefert den Namen des Wochentags zu dem aktuellen Datum (Montag = 1).
    	 */
    	std::string dayOfWeekAsName() const;
    
    	/**
    	 * Addiert die angegebene Anzahl Tage zu diesem Julianischen Datum hinzu.
    	 */
    	CJulianDate& operator+= (long days) {
    		m_days += days;
    		return *this;
    	}
    
    	long operator-(const CJulianDate& other) ;
    
    	/**
    	 * Vergleicht zwei Julianische Daten und liefert true, wenn das als
    	 * linker Operand angegebene Datum vor dem als rechter Operand
    	 * angegebenen liegt.
    	 */
    	bool operator< (const CJulianDate& rhs) const;
    	friend ostream& operator << (ostream& lop, const CJulianDate& rhs);
    	friend long operator-(const CJulianDate& other) ;
    
    };
    
    #endif /* MYCODE_CJULIANDATE_H_ */
    

    cpp

    * CJulianDate.cpp
     *
     *  Created on: 02.02.2017
     *      Author: mnl
     */
    
    #include "CJulianDate.h"
    #include <cstdio>
    
    //===============================================
    // Ergänzen Sie Ihren Code am Ende dieser Datei!
    //===============================================
    
    CJulianDate::CJulianDate(long date) {
    	m_days = date;
    }
    
    CJulianDate::CJulianDate(int year, short month, short day) {
    	fromGregorianDate(year, month, day);
    }
    
    long CJulianDate::getJulianDate() const {
    	return m_days;
    }
    
    void CJulianDate::setJulianDate(long date) {
    	m_days = date;
    }
    
    void CJulianDate::toGregorianDate(int& year, short & month, short & day) const {
    	long i, j, k, l, n;
    
    	l = m_days + 68569;
    	n = 4 * l / 146097;
    	l = l - (146097 * n + 3) / 4;
    	i = 4000 * (l + 1) / 1461001;
    	l = l - 1461 * i / 4 + 31;
                                                                                                                                         	j = 80 * l / 2447;
    	k = l - 2447 * j / 80;
    	l = j / 11;
    	j = j + 2 - 12 * l;
    	i = 100 * (n - 49) + i + l;
    
    	year = i;
    	month = j;
    	day = k;
    }
    
    void CJulianDate::fromGregorianDate(int year, short month, short day) {
    	m_days = day - 32075 + 1461 * (year + 4800 + (month - 14) / 12) / 4
    			+ 367 * (month - 2 - (month - 14) / 12 * 12) / 12
    			- 3 * ((year + 4900 + (month - 14) / 12) / 100) / 4;
    }
    
    int CJulianDate::dayOfWeek() const {
    	return (m_days % 7) + 1;
    }
    
    std::string CJulianDate::dayOfWeekAsName() const {
    	switch (dayOfWeek()) {
    	case 1:
    		return "Montag";
    	case 2:
    		return "Dienstag";
    	case 3:
    		return "Mittwoch";
    	case 4:
    		return "Donnerstag";
    	case 5:
    		return "Freitag";
    	case 6:
    		return "Samstag";
    	case 7:
    		return "Sonntag";
    	default:
    		return "(Fehler)";
    	}
    }
    
    std::string CJulianDate::formatDayNumber(short day) const {
    	char buffer[5];
    	int year;
    	short month;
    	short refDay;
    
    	toGregorianDate(year, month, refDay);
    	sprintf(buffer, day == refDay ? "[%2d]" : " %2d ", day);
    	return std::string(buffer);
    }
    
    bool CJulianDate::operator <(const CJulianDate& rhs) const {
    	return m_days < rhs.m_days;
    }
    
    //=====================================================
    // Ergänzen Sie Ihren Code unterhalb dieses Kommentars
    //=====================================================
    
    ostream& operator << (ostream& lop, const CJulianDate& rhs){
    	short day, month;
    		int year;
    		rhs.toGregorianDate(year, month, day);
    		lop<< rhs.dayOfWeekAsName() << ", " << day << "." << month << "." << year << std::endl;
    		return lop;
    
    }
    
    long operator-(const CJulianDate& other) {
        return m_days - other.m_days;
    }
    

    Fehler

    Description Resource Path Location Type
    'm_days' was not declared in this scope CJulianDate.cpp /CJulianDate line 113 C/C++ Problem
    Symbol 'm_days' could not be resolved CJulianDate.cpp /CJulianDate line 113 Semantic Error



  • Header:
    Zeile 95: sollte const sein
    Zeile 104: entfernen

    Source:
    Zeile 110: **CJulianDate::**operator-() const (wenn du meine vorherige Bemerkung befolgt hast)



  • Das Header war aber so vorgegeben .

    Ich kann da nicht einfach was entfernen


Log in to reply