enum vs struct
-
bevor da noch jemand auf die idee kommt, das ich alle fehler in meinem programm ueber diese methode definieren will:
ich habe insgesammt 5 klassen die von einer template-klasse ableiten.
in der template-klasse sind 9 fehlerarten definiert. in den 5 abgeleiteten klassen kommen 3-5 neue fehlerarten dazu, welche jedoch zueinander unterschiedlich sind. damit ich nun nicht in jeder klasse die 9 gemeinsamen fehlerarten neu definieren muss, und nicht alle moeglichen fehler in die tmeplate-klasse geben muss, hab ich mich fuer diesen weg entschieden. fuer groessere sachen wuerde ich dieses konstrukt gar nicht verwenden. aber fuer diesen fall finde ich es recht gut.warum ich es nicht ueber exceptions mache? wie wuerde man das mit exceptions machen, damit die definitionen der fehler zentral gehalten werden koennen ?
Meep Meep
-
zu diesem hier:
struct err1 { enum {e1,e2,e3,e_tail}; }; struct err2 : public err1 { enum { e_head = err1::e_tail, e4,e5,e6, e_tail}; };Seit wann werden den Elementen folgende Nummern zugewiesen wenn man einen Wert festgelegt hat.
Wenn ich das richtig verstanden habe führt das dazu dass e_head = errl::e_tail ; e4 = 0; e5 = 1; usw
-
warum ich es nicht ueber exceptions mache? wie wuerde man das mit exceptions machen, damit die definitionen der fehler zentral gehalten werden koennen ?
keine ahnung, was du mit "zentral" meinst. aber du kannst (1) viele exception-klassen schreiben, die alle verschiedene namen haben. wäre "isomorph" zu deinen ids. nur dass du die einzigartigkeit vom compiler bekommst. 2) vererbung der exceptions benutzen um die typen zu konkretisieren.
Wenn ich das richtig verstanden habe führt das dazu dass e_head = errl::e_tail ; e4 = 0; e5 = 1; usw
Nö, e4 = err1::e_tail+1, e5 = er1::e_tail+2, usw
-
Wieder was gelernt
