PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Vererbung einer Exception Klasse


pajofego
2005-06-30, 21:26:02
Ich habe folgende Basisklasse geschrieben:

Hier Headerteil:

class clBaseException
{
private:
short errNum;
static const char *pErrText[];
public:
enum {ZDIV, SQRT, CUSTOM_ERROR};
clBaseException();
clBaseException(int err);
clBaseException(const clBaseException& src);
friend ostream& operator << (ostream& os, const clBaseException& e);
}

und cpp Teil:

const char *clBaseException::pErrText[] =
{
"Division durch '0'",
"Wurzel aus negativer Zahl",
"Default constructor gestartet!"
};

ostream& operator <<(ostream& os, const clBaseException& e)
{
char h_strError[300];
S_ERROR(h_strError, e.pErrText[e.errNum]);
os << h_strError ;
return os;
}

clBaseException::clBaseException()
{
errNum = 3;
}

clBaseException::clBaseException(int err)
{
errNum = err;
}

clBaseException::clBaseException(const clBaseException& src)
{
errNum = src.errNum;
}


Nun wollte ich das ganze zweimal wie folgt vererben (im header file):


class clFluidException : public clBaseException
{
public:
clFluidException(int err) : clBaseException(err){};
clFluidException(const clFluidException& src) : clBaseException(src){};
};

class clNOC_PipeException : public clBaseException
{
public:
clNOC_PipeException(int err): clBaseException(err){};
clNOC_PipeException(const clNOC_PipeException& src) : clBaseException(src){};
};


Der Compiler wirft folgende Fehlermeldung:

multiple types in one declaration

Könnte mir einer erklären woher das kommt und wie ich das richtig mache?

Danke vorab,

Gruß

pajofego

Gast
2005-06-30, 22:51:15
das ding spuckt doch zeilennummern aus? in welcher zeile ist der fehler?

pajofego
2005-06-30, 23:00:06
das ding spuckt doch zeilennummern aus? in welcher zeile ist der fehler?
Zeilenr. 35, das ist am Ende von der ageleiteten Klasse clFluidException

ScottManDeath
2005-06-30, 23:34:46
hinter ...... {} darf kein ; kommen

pajofego
2005-06-30, 23:41:16
hinter ...... {} darf kein ; kommen

Boah ey, danke...darauf wäre ich nie gekommen!

Beste Grüße

pajofego

Coda
2005-07-01, 00:20:19
Aber hinter die class } muss eigentlich ein ; :|

Gast
2005-07-04, 18:20:40
Aber hinter die class } muss eigentlich ein ; :|
So ist es auch. Dafür fehlt bei "class clBaseException" hinten das Semikolon.