Konstruktor/Destruktor C++

Dieses Thema im Forum "Mac OS Entwickler, Programmierer" wurde erstellt von tconz, 23.10.2005.

  1. tconz

    tconz Thread Starter MacUser Mitglied

    Beiträge:
    151
    Zustimmungen:
    0
    Mitglied seit:
    21.02.2005
    Hi,
    hoffe es kann mir einer Helfen, mach jetzt seit einer Stunde dran rum:
    Warum geht mein Kon/Destruktor nicht?

    HEAD:

    #include <Carbon/Carbon.h>
    #include "Temperature.h"

    class TemperatureField
    {
    private:
    int validCount;
    public:
    Temperature* tempArray[100];
    TemperatureField(int count);
    ~TemperatureField();
    }

    CPP

    #include "TemperatureField.h"

    TemperatureField::TemperatureField(int count)
    {

    }
    TemperatureField::~TemperatureField()
    {

    }


    Fehlermeldung:
    ISO C++ forbides defining types within return type

    Thanx Tobi
     
  2. dannycool

    dannycool MacUser Mitglied

    Beiträge:
    1.489
    Zustimmungen:
    34
    Mitglied seit:
    02.02.2005
    Ich glaub Dir fehlt ein ; am Ende des .h.
     
  3. autoexec.bat

    autoexec.bat MacUser Mitglied

    Beiträge:
    2.113
    Zustimmungen:
    20
    Mitglied seit:
    21.01.2005
    Du musst die Klasse mit einem Semikolon abschließen.

    class TemperatureField
    {
    private:
    int validCount;
    public:
    Temperature* tempArray[100];
    TemperatureField(int count);
    ~TemperatureField();
    };
     
  4. tconz

    tconz Thread Starter MacUser Mitglied

    Beiträge:
    151
    Zustimmungen:
    0
    Mitglied seit:
    21.02.2005
    hi,
    danke für die schnellen und richtigen Antworten.

    Gibt es für C++ nicht sowas wie für Java in Eclipse, der solche Fehler anzeigt?

    Thx Tobi
     
  5. dannycool

    dannycool MacUser Mitglied

    Beiträge:
    1.489
    Zustimmungen:
    34
    Mitglied seit:
    02.02.2005
    Der C++-Compiler hat es doch angezeigt. :D Wenn etwas mit dem Rückgabetyp bei einer Funktion ist, die keinen hat, dann ist das Problem meistens direkt davor zu suchen ;)

    Die diversen *lint sind eher dafür geeignet, Fehler zu finden, die der Compiler durchgehen lässt.

    Ist das Eclipse CDT vielleicht inzwischen so weit, dass es das kann? Ich hab lang nicht geguckt.
     
  6. tconz

    tconz Thread Starter MacUser Mitglied

    Beiträge:
    151
    Zustimmungen:
    0
    Mitglied seit:
    21.02.2005
    @dannycool: Nein, leider nicht, oder ich hatte es falsch konfiguriert.


    Gruss Tobi
     
  7. tconz

    tconz Thread Starter MacUser Mitglied

    Beiträge:
    151
    Zustimmungen:
    0
    Mitglied seit:
    21.02.2005
    Hi, nochmal was ;)
    was bedeutet
    ISO C++ forbides declaration of 'setCelsius' with no typ

    1000 Dank

    Tobi
     
  8. autoexec.bat

    autoexec.bat MacUser Mitglied

    Beiträge:
    2.113
    Zustimmungen:
    20
    Mitglied seit:
    21.01.2005
    Sagt doch schon die Fehlermeldung. Du hast bei setCelsius den Typ vergessen. Also z.B. int setCelsius oder void setCelsius.

    Aber warscheinlich fehlt doch nur irgendwo ein Semikolon. :p
     
  9. tconz

    tconz Thread Starter MacUser Mitglied

    Beiträge:
    151
    Zustimmungen:
    0
    Mitglied seit:
    21.02.2005
    Bestimmt, aber wo?
    ...

    public:
    TemperatureField(int count);
    ~TemperatureField();
    void setCelsius(double t, int index);
    double getCelsius(int index);
    };

    UND

    #include "TemperatureField.h"
    TemperatureField::setCelsius(double t, int index)
    {
    // tempArray[index]->setCelsius(index);
    ;
    }
    TemperatureField::getCelsius(int index)
    {

    return t;
    }
     
    Zuletzt bearbeitet: 23.10.2005
  10. Habe es nicht ausprobiert, würde es aber so schreiben:

    public:
    TemperatureField(int count);
    ~TemperatureField();
    void setCelsius(double t, int index);
    double getCelsius(int index);
    };

    UND

    #include "TemperatureField.h"
    TemperatureField::setCelsius(double t, int index)
    {
    // tempArray[index]->setCelsius(index);
    };
    TemperatureField::getCelsius(int index)
    {

    return t;
    }
     
Die Seite wird geladen...

Diese Seite empfehlen