Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: C++ (auch C++0x und C++11) ::  Headerdatei  
Gehen Sie zu Seite 1, 2  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
#include
Mitglied

Benutzerprofil
Anmeldungsdatum: 17.08.2012
Beiträge: 18
Beitrag #include Mitglied 12:49:24 19.08.2012   Titel:   Headerdatei            Zitieren

Hallo,

Ich hab ein kleines Anfängerproblem das für mich unlösbar ist
Ich will einen Taschenrechner Prog. der ein meu hat und immer den bilds´chirm löscht ... wenn man zb eine addition ausgeführt hat ...

Ich wollte das das menu eine Funktion ist und in als Menu.h abgespeichert ist
Dann hab ich menu.h so in meiner main eingefügt

[cpp]#include "Menu.h"
(Die Datei ist im selben ordner wie die main und das projekt ...)

Aber der Compiler gibt folgende Felermeldung aus ... :

3 D:\Users\Cpp\Desktop\main.cpp In file included from main.cpp
6 D:\Users\Cpp\Desktop\Menu.h expected unqualified-id before '{' token
6 D:\Users\Cpp\Desktop\Menu.h expected `,' or `;' before '{' token
D:\Users\Cpp\Desktop\Makefile.win [Build Error] [main.o] Error 1

Wird vermutlich ein Großer Anfängerfhler sein den ich übersehen hab :D
pyhax
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.11.2011
Beiträge: 692
Beitrag pyhax Mitglied 12:53:49 19.08.2012   Titel:              Zitieren

Wie sieht denn deine Menu.h aus?

_________________
Ich kann (teilweise): C++, Python, Java(ist lange her), PHP, D (Anfänger)
#include
Mitglied

Benutzerprofil
Anmeldungsdatum: 17.08.2012
Beiträge: 18
Beitrag #include Mitglied 13:22:14 19.08.2012   Titel:              Zitieren

pyhax schrieb:
Wie sieht denn deine Menu.h aus?


C++:
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <windows.h>
using namespace std;
 
void MENU ();
{
     cout << endl;
     cout << "\n<1> START" << endl;
     cout << "\n<2> INFO" << endl;
     cout << "\n<3> END" << endl;
}


/edit pumuckl: cpp-tag geschlossen


Zuletzt bearbeitet von pumuckl am 11:55:36 20.08.2012, insgesamt 1-mal bearbeitet
pyhax
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.11.2011
Beiträge: 692
Beitrag pyhax Mitglied 13:24:46 19.08.2012   Titel:              Zitieren

Das ; nach void MENU() muss weg.

EDIT: Du weist schon, das du da Linkerprobleme bekommst, wenn du Menu in mehr als einer .cpp einbindest? Google: One defintion rule, Include guards, inline

_________________
Ich kann (teilweise): C++, Python, Java(ist lange her), PHP, D (Anfänger)


Zuletzt bearbeitet von pyhax am 13:26:23 19.08.2012, insgesamt 1-mal bearbeitet
theta
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.09.2008
Beiträge: 4074
Beitrag theta Mitglied 13:25:40 19.08.2012   Titel:              Zitieren

Die Definition der Funktion MENU() gehört in die entsprechende CPP Datei.

Im Moment ist in Menu.h eine Mischung aus Dekl. und Definition der Funktion MENU().
theta
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.09.2008
Beiträge: 4074
Beitrag theta Mitglied 13:27:02 19.08.2012   Titel:              Zitieren

pyhax schrieb:
Das ; nach void MENU() muss weg.

Das alleine bringt aber bald auch wieder Probleme mit sich. Wenn so, dann gehört da auch noch ein inline hin um die ODR nicht zu verletzen.
pyhax
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.11.2011
Beiträge: 692
Beitrag pyhax Mitglied 13:30:31 19.08.2012   Titel:              Zitieren

theta schrieb:
pyhax schrieb:
Das ; nach void MENU() muss weg.

Das alleine bringt aber bald auch wieder Probleme mit sich. Wenn so, dann gehört da auch noch ein inline hin um die ODR nicht zu verletzen.


Siehe Edit

_________________
Ich kann (teilweise): C++, Python, Java(ist lange her), PHP, D (Anfänger)
#include
Mitglied

Benutzerprofil
Anmeldungsdatum: 17.08.2012
Beiträge: 18
Beitrag #include Mitglied 13:36:48 19.08.2012   Titel:              Zitieren

Danke ^^ man ich muss besser cpp lernen :mad:
Jonas OSDever
Mitglied

Benutzerprofil
Anmeldungsdatum: 26.08.2010
Beiträge: 694
Beitrag Jonas OSDever Mitglied 13:38:09 19.08.2012   Titel:              Zitieren

Und using namespace std; gehoert nie in Header. Es gilt schlicht und einfach als grauenhafter Stil, im Header Namespaces zu oeffnen. Solltest du die Funktion inline machen wollen, dann schreib std::cout zumindest in Headern aus.
Selbiges gilt uebrigens fuer spaeter, wenn du Klassen in den Headern definierst und dann auf Typen wie z.B. std::string, std::vector usw. fuer Membervariablen zurueckgreifen willst.

_________________
Hier koennte eine Signatur stehen


Zuletzt bearbeitet von Jonas OSDever am 13:40:03 19.08.2012, insgesamt 2-mal bearbeitet
pumuckl
Moderator

Benutzerprofil
Anmeldungsdatum: 21.06.2005
Beiträge: 7326
Beitrag pumuckl Moderator 11:57:35 20.08.2012   Titel:              Zitieren

Jonas OSDever schrieb:
Es gilt schlicht und einfach als grauenhafter Stil, im Header Namespaces zu oeffnen.
Bestenfalls. Schlimmstenfalls gibts Compilerfehler oder unerwartetes Laufzeitverhalten nach deren ursache man eine kleine Ewigkeit suchen kann.

_________________
Du brauchst Hilfe? - Forenregeln. Den richtigen Code posten - machs uns einfacher dir zu helfen
Don't feed the Help Vampires!
c++.de :: C++ (auch C++0x und C++11) ::  Headerdatei  
Gehen Sie zu Seite 1, 2  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.