Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Fehlermeldung beim compilieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
24.01.2004, 17:36 Uhr
~sebbraun
Gast


Hi.

Kann mir jemand sagen was der Fehler bei Folgedem Code ist? Bekomme die FEhlermeldung vom Compiler, dass ich die einzelnen memberfunktionen nicht überladen könne - was ich ja garnicht tun will.

header:

C++:
class malemenu
{
public:


        void sternchen();
        void text (Menuitem menu);

        char eingabeaufforderung();
        int fehlerabfrage(char     abkuerzung);
        malemenu();

private:

        int data;


#endif



CPP datei:


C++:
void malemenu :: sternchen ()
{
cout<<endl<<endl<<"**************************************************"<<endl<<endl<<endl;
return ;
};

void malemenu :: text (Menuitem menu)
{
    int menuitemzaehler =8;
    for  (int i=0; i<menuitemzaehler; i++)
                {
                 cout<<"      "<<menu[i].shortcut<<" "<< menu[i].description<<endl;    //schleife gibt menu aus
                   }
    return 0;
};

char malemenu :: eingabeaufforderung ()
{
        char abkuerzung = e;
         cout << "      Bitte waehlen Sie einen Menupunkt  "<<endl<<endl;
                 cin >> abkuerzung;
return abkuerzung;
};

int  malemenu :: fehlerabfrage (char     abkuerzung)
{

     bool korrekt =0;

        for (int i=0; i<menuitemzaehler; i++)
        {
            if(abkuerzung == menu[i].shortcut)
            {
            menu[i].callback();        //aufruf der vom Benutzer gewuenschten FKT

            korrekt=true ;            //setze korrektes zeichen = wahr
            }

        }

        if( korrekt == false && abkuerzung !='e')    //abfrage auf korrektes zeichen
        {
          cout << " Sie haben ein ungültiges Zeichen eingegeben! " << endl;
        }

return 3;
};

malemenu :: malemenu ()
{
    char abkuerzung='$';

    do
    {
        malemenu.sternchen();
        malemenu.text (menu);
        malemenu.sternchen();
        malemenu.eingabeaufforderung();
        malemenu.fehlerabfrage (eingabeaufforderung);

        };

}
while(abkuerzung!='e');    //Abbruchbedingung




Bearbeitung von Pablo:

BITTE CPP TAGS SELBER BENUTZEN


Dieser Post wurde am 24.01.2004 um 17:44 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
24.01.2004, 17:49 Uhr
Pablo
Supertux
(Operator)


Und welcher genau ist der Fehler, den der Compiler ausgibt?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.01.2004, 17:52 Uhr
~sebbraun
Gast


gui.cpp:63: Warnung: extra qualification `malemenu::' on member `malemenu'
ignored
gui.cpp:63: error: `malemenu::malemenu()' and `malemenu::malemenu()' cannot be
overloaded


das gibtr er für jede memberfunktion aus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.01.2004, 17:56 Uhr
~sebbraun
Gast



C++:
#define _GUI_H_INCLUDED_
void menuesteuerung();
    typedef void (*VOIDFCT)(); //Typdefinition, als void
    struct Menuitem        //definition des Menuelementes
    {
        char shortcut;
        const char* menutext;
        const char* description;
        VOIDFCT callback;

    };

#endif

class malemenu
{
public:


        void sternchen() const;        //hier geändert
        void text (Menuitem menu) const;

        char eingabeaufforderung() const;
        int fehlerabfrage(char     abkuerzung) const ;
        malemenu() ;

private:

        int data;

#endif



habe die header datei abgeändert, jetzt sind die fehlermeldungen für die konstanten funktionen weg - warum?

Code:
braun@linux:~/C++/23.1.04> g++ -c -Wall -pedantic gui.cpp
gui.cpp:14: Warnung: extra qualification `malemenu::' on member `sternchen'
   ignored
gui.cpp:20: Warnung: extra qualification `malemenu::' on member `text' ignored
gui.cpp:30: Warnung: extra qualification `malemenu::' on member `
   eingabeaufforderung' ignored
gui.cpp:38: Warnung: extra qualification `malemenu::' on member `fehlerabfrage'
   ignored
gui.cpp:63: Warnung: extra qualification `malemenu::' on member `malemenu'
   ignored
gui.cpp:63: error: `malemenu::malemenu()' and `malemenu::malemenu()' cannot be
   overloaded
gui.cpp:85: error: parse error before `while'




Bearbeitung von Pablo:

BITTE, CPPS TAGS BENUTZEN


Dieser Post wurde am 24.01.2004 um 18:00 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
24.01.2004, 17:58 Uhr
Pablo
Supertux
(Operator)


Ich erkenne den Fehler nicht, aber deine do Schleife ist nicht richtig. Da fehlt nämlich die Abbruchbedingung und die while-Abbruchbedinung ist außerhalb der Funktion.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
24.01.2004, 18:02 Uhr
~sebbraun
Gast


Ja, stimmt, das kommt vom vielen kopieren, danke.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
24.01.2004, 18:03 Uhr
Pablo
Supertux
(Operator)


Ob das die Ursache deines Problem ist, weiß ich nicht. Mit Klassen kenne ich mich wenig aus.

Auf -pedantic bei g++ kannst du verzichten, auch laut man pages.

Zitat:

-pedantic
Issue all the warnings demanded by strict ANSI standard C; reject all programs that use forbid­
den extensions.

Valid ANSI standard C programs should compile properly with or without this option (though a
rare few will require `-ansi'). However, without this option, certain GNU extensions and tra­
ditional C features are supported as well. With this option, they are rejected. There is no
reason to use this option; it exists only to satisfy pedants.

`-pedantic' does not cause warning messages for use of the alternate keywords whose names begin
and end with `__'. Pedantic warnings are also disabled in the expression that follows __exten­
sion__. However, only system header files should use these escape routes; application programs
should avoid them.



--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 24.01.2004 um 18:06 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
24.01.2004, 18:05 Uhr
~sebbraun
Gast


Das problem besteht noch
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
24.01.2004, 19:05 Uhr
derphilipder



Eine Funktion die denselben Namen wie die Klasse hat, ist ein Konstruktor, den Du ja auch in der Definition Deiner Klasse definiert hast.

Deine überladenen Funktionen dürfen natürlich denselben Namen haben, aber nicht gerade den der Klasse!

Zur Implementierung Deines Konstruktors

malemenu.sternchen(); etc. geht so nicht was hastn da vor?
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
24.01.2004, 19:07 Uhr
0xdeadbeef
Gott
(Operator)


Mach die Klasse malmenu mal zu, in der .h fehlt am ende ein };.

Außerdem solltest du die Semikolons nach den Funktionsimplementierungen in der .cpp weg nehmen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: