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: sollteconst
sein
Zeile 104: entfernenSource:
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