Anzeige:
Ergebnis 1 bis 5 von 5

Thema: oprobelm klase

  1. #1
    jan-heiner
    Gast

    oprobelm klase

    hallo
    ich hab garde mit c++ ange fanhgen und benutrze KDeveler
    nun hab ich ein kleine program geschriebn mit einer kllasse und es gibt nur probelem
    ich finde meine fehler nicht .

    // kallse
    #ifndef _jan_h
    #define _jan_h

    class jan
    {
    int f=444;
    };
    #endef


    cpp

    #ifdef HAVE_CONFIG_H
    #include <config.h>
    #endif
    #include "jan.h"
    #include <iostream>
    #include <cstdlib>

    using namespace std;

    int main(int argc, char *argv[])
    {
    cout << "Hello, world!" << endl;
    int a;
    a=10;
    cout <<a;


    return EXIT_SUCCESS;

    fherlemedung
    cd '/home/jan/Sachen/prigarme/ttt/debug' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake -k
    gmake all-recursive
    Making all in src
    if g++ -DHAVE_CONFIG_H -I. -I/home/jan/Sachen/prigarme/ttt/src -I.. -O0 -g3 -MT ttt.o -MD -MP -MF ".deps/ttt.Tpo" -c -o ttt.o /home/jan/Sachen/prigarme/ttt/src/ttt.cpp; then mv -f ".deps/ttt.Tpo" ".deps/ttt.Po"; else rm -f ".deps/ttt.Tpo"; exit 1; fi
    In file included from /home/jan/Sachen/prigarme/ttt/src/ttt.cpp:25:
    /home/jan/Sachen/prigarme/ttt/src/jan.h:8:2: error: invalid preprocessing directive #endef
    /home/jan/Sachen/prigarme/ttt/src/jan.h:8:7: warning: no newline at end of file
    /home/jan/Sachen/prigarme/ttt/src/jan.h:1:1: error: unterminated #ifndef
    /home/jan/Sachen/prigarme/ttt/src/jan.h:6: error: ISO C++ forbids initialization of member ‘f’
    /home/jan/Sachen/prigarme/ttt/src/jan.h:6: error: making ‘f’ static
    /home/jan/Sachen/prigarme/ttt/src/jan.h:6: error: ISO C++ forbids in-class initialization of non-const static member ‘f’
    gmake[2]: *** [ttt.o] Fehler 1
    gmake[2]: Das Target »all« wurde wegen Fehlern nicht aktualisiert.
    gmake[2]: Für das Ziel »all-am« ist nichts zu tun.
    gmake[1]: *** [all-recursive] Fehler 1
    gmake: *** [all] Fehler 2
    *** Beendet mit Status: 2 ***


    suse 10.0
    wen jeman weiter weiß wäre das super

  2. #2
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Hallo und Willkommen hier.

    Die Fehlermeldung sagts schon:
    invalid preprocessing directive #endef
    Das sollte #endif heissen.

    Ausserdem darfst du in der Klassendeklaration die Elemente nicht initialisieren (es sei denn sie seien statisch) d.h. int f=444; geht nicht - hingegen int f; geht.

    MfG Peschmä
    Geändert von peschmae (21-11-2005 um 21:52 Uhr)
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  3. #3
    Registrierter Benutzer Avatar von Giuly
    Registriert seit
    28.04.2003
    Ort
    HB-Nord
    Beiträge
    201
    // kallse
    Code:
    #ifndef _jan_h
    #define _jan_h
    
    class jan
    {
      int f;
      jan() {
        f=444;
      }
    };
    #endif
    cpp
    Code:
    #ifdef HAVE_CONFIG_H
    #include <config.h>
    #endif
    #include "jan.h"
    #include <iostream>
    #include <cstdlib>
    
    int main(int argc, char *argv[])
    {
      std::cout << "Hello, world!" << std::endl;
      int a=10;
      std::cout << a;
     
    
     return EXIT_SUCCESS;
    }

    Und beim schreiben/coden/lesen mal ein bisschen darauf achten, WAS man schreibt/liest. In der Schule lassen die dir ja auch nicht einen Fehler alle zwei Worte durchgehen, oder?

    MfG

    P.S.: Sofern du Analphabet sein solltest, die letzten beiden Sätze ignorieren.

  4. #4
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Zitat Zitat von Giuly
    Und beim schreiben/coden/lesen mal ein bisschen darauf achten, WAS man schreibt/liest. In der Schule lassen die dir ja auch nicht einen Fehler alle zwei Worte durchgehen, oder?
    @jan-heiner: Ich denke das könnte wirklich ein grosses Problem werden für dich. Ich meine Programmiersprachen nehmen es da schon *sehr* genau mit vertippsern und solchen sachen.
    Was bei mir jeweils half um so fiese Fehler zu machen (am Anfang, mittlerweile mach ich davon nicht mehr so viele - dafür andere) ist den Code wo der Fehler ist Buchstabe für Buchstabe durchzulesen.
    Wenn du nämlich einfach das Wort anguckst kanns gut sein dass dort #endef steht, du aber #endif liest weil du genau weisst dass es #endif heissen muss und deshalb wird wohl auch das dort stehen oder so...

    P.S.: Sofern du Analphabet sein solltest, die letzten beiden Sätze ignorieren.
    In seiner Linuxforen.de Sig steht was diesbezüglich http://www.linuxforen.de/forums/member.php?u=15005

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  5. #5
    Registrierter Benutzer
    Registriert seit
    27.07.2000
    Beiträge
    123
    hi,

    noch ein kleiner tip. es gibt beim programmieren ein paar konventionen die man versucht so gut wie möglich einzuhalten. das klappt nicht immer, aber üben hilft da.

    - Konstanten komplett in Grossbuchstaben
    z.B.
    #define _JAN_

    - bei Klassennamen der erste Buchstabe gross schreiben
    z.B.
    class Jan;

    du findest dich damit auch selbst besser in deinem quellcode zurecht.

    noch zur allgemeine form. die tatsache, dass du dich mit programmieren beschäftigst, zeigt mir, dass du, wenn auch wohl mit grossem aufwand, deine eingaben korrigieren kannst. schau mal ob du nicht gelegentlich mal den vorschau- button verwenden kannst.

    zu den fehlermeldungen:
    Code:
    /home/jan/Sachen/prigarme/ttt/src/jan.h:8:2: error: invalid preprocessing directive #endef
    der dateiname: jan.h:
    die zeilennummer: 8:
    und der Tabulator: 2:
    zeigen dir wo der fehler zu finden ist. einfach diese dinge prüfen. wenn du mit der übersetzung probleme haben solltest, dann kann ich dir
    http://dict.leo.org/ empfehlen (deutsch - englisch / englisch - deutsch)

    Code:
    /home/jan/Sachen/prigarme/ttt/src/jan.h:8:7: warning: no newline at end of file
    der compiler möchte am dateiende noch einen zeilenumbruch haben (no newline). einfach nochmal die eingabetaste drücken.


    Code:
    /home/jan/Sachen/prigarme/ttt/src/jan.h:1:1: error: unterminated #ifndef
    diese fehlermeldung resultiert aus der ersten meldung (8:2:2). die #ifndef - anweisug ist nicht abgeschlossen, es wird ein #endif erwartet ...

    gruesse reinhard

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •