Konstruktor/Destruktor C++

T

tconz

Aktives Mitglied
Thread Starter
Dabei seit
21.02.2005
Beiträge
151
Reaktionspunkte
0
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
 
Ich glaub Dir fehlt ein ; am Ende des .h.
 
Du musst die Klasse mit einem Semikolon abschließen.

class TemperatureField
{
private:
int validCount;
public:
Temperature* tempArray[100];
TemperatureField(int count);
~TemperatureField();
};
 
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
 
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.
 
@dannycool: Nein, leider nicht, oder ich hatte es falsch konfiguriert.


Gruss Tobi
 
Hi, nochmal was ;)
was bedeutet
ISO C++ forbides declaration of 'setCelsius' with no typ

1000 Dank

Tobi
 
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
 
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:
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;
}
 
Da:

void TemperatureField::setCelsius(double t, int index)
{
// tempArray[index]->setCelsius(index);
}

double TemperatureField::getCelsius(int index)
{

return t;
}
 
Zuletzt bearbeitet:
ich glaub ich mach mal eine Pause ;)

Danke
 
ups.... jalapeno hat recht... naja, hab mich schon ne weile nicht mehr mit c++ beschäftigt.....
 
Zurück
Oben Unten