Probleme beim includieren.
-
Hi habe kürzlich angefangen c++ zu lernen und stehe wiedermal vor einem Problem.
Der Code für die Headerdatei:
#include "stdafx.h" using namespace std; class employee { public: int getsal() const; void setsal(int Sal); int getage() const; void setage(int Age); int getyos() const; void setyos(int Yos); private: int yearsOfService; int salary; int age; };und für die cpp datei:
#include "stdafx.h" #include <iostream> #include <cstdio> #include "employee.hpp" using namespace std; int employee::getsal() const { return salary; } void employee::setsal(int Sal) { salary = Sal; } int employee::getage() const { return age; } void employee::setage(int Age) { age = Age; } int employee::getyos() const { return yearsOfService; } void employee::setyos(int Yos) { yearsOfService = Yos; } int main() { //noh nicht fertig return 0; }Trotz der Tatsache das ich die main Funktion noch nicht geschrieben habe müsste er mir ja schon Fehlerfrei compilieren.
Tut er auch sobald ich die Klassen deklaration in die cpp datei schreibe!Wenn ich es so mache wie oben kommt folgende Fehlermeldung:
"error C2511: 'int employee::getsal(void) const' : overloaded member function not found in 'employee'"
und zwar für jede const-Funktion.Wenn ich das const-schlüsselwort weglasse verschwinden die Fehler- Allerdings lässt dann der Compiler auch zu wenn die Member über die get-Funktionen geändert werden.
Jemand ne Idee. Ich seh den Fehler ums verecken nicht. (Bin auch ungeübt).
Danke schonmal
-
the knowless schrieb:
...Ich seh den Fehler ums verecken nicht....
Ich auch nicht und mein Compiler auch nicht.
Ich tippe darauf, dass Du Deinem Compiler nicht wirklich den o.g. Code gibst (Copy-Fehler, Projekt falsch eingerichtet, precompiled-Header-Problem, ...).
An Deiner Stelle würde ich erstmal die precompiled-Header ausknipsen und alles Andere aus dem Projekt rausschmeissen.Gruß,
Simon2.
-
Erstmal ein paar Tips:
1. #include "stdafx.h" brauchst du nicht in den Header schreiben. Also raus damit! Ist nur für Implementierungen und somit CPP-Dateien nötig.
2. using namespace sollte man aus der Header entfernen, da dies leider auch mal böse ins Auge gehen kann. In der CPP-Datei ist ein using namespace jedoch i.O.
3. Hast du im Header auch einen Include-Guard drin? Z.B. ein #pragma once, wenn es nur auf MSVC laufen soll. Ansonst #ifndef-Geraffel benutzen, steht in jedem C++-Buch drin und es gibt bestimmt hier ein FAQ zu.
4. Schau mal hier: http://msdn2.microsoft.com/en-us/library/20fs9x81.aspxIch kann so direkt keinen Fehler bei dir finden.
-
Danke Leute Problem gelöst
ich bin mir nicht ganz im klaren woran es lag. den Code habe ich nämlich ins Forum kopiert (von meinem geschriebenem Code!).
nach neustart des Compilers funktionierte es?
-
und danke für die Tips

-
the knowless schrieb:
...nach neustart des Compilers funktionierte es?
Keine Ahnung - tat es das ?

Gruß,
Simon2.