Nicht nachvollziehbar: request for member which is of non-class type
-
Ich habe versucht den Code möglichst auf mein Problem zu reduzieren, er ist aber trotzdem noch kompilierbar, wenn man folgendes tut:
1.) Kommentar vor "date(int ist_egal): day(1){}" im Header aufheben
#ifndef NAME_DES_HEADERS_HPP #define NAME_DES_HEADERS_HPP class date { int day; public: int get_day() {day;} date(): day(1){} //date(int ist_egal): day(1){} //so würde es funktionieren }; #endif
und:
2.) Kommentar vor "date test(23234);" aufheben "date test();" löschen/auskommentieren#include <cstdlib> #include <iostream> #include "date.hpp" using namespace std; int main() { date test(); //date test(23234); //in .hpp Kommentar aufheben und es funzt so cout << test.get_day() << endl; system("PAUSE"); return EXIT_SUCCESS; }
Ansonsten wird vom Compiler (Benutze als IDE DevC++ mit dem Mingw Compiler) folgende Fehlermeldung geliefert:
Zeile 11 in main.cpp(s.o.): request for member `get_day' in `test', which is of non-class type `date ()()'
Ich verstehs nicht, warum?
-
Hi, mache in Zeile 9 die Klammern weg, sonst denkt der Compiler es wäre eine Funktionsdeklaration ...
-
Verflixt und ich hab mir einen abgebrochen und die Lösung ist simpel und einleuchtend, super, vielen Dank!!!
-
Übrigens solltest du in der get_day() auch einen Wert zurückgeben:
int get_day() { return day; }
. (der Ausdruckday;
ist zwar eine legale Anweisung, bewirkt jedoch gar nichts)