Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Deconstructor

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.07.2004, 18:19 Uhr
~Rudi
Gast


Tag Leute!


Kann man einem deconstructor keine parameter nitgeben?
hab einen geschrieben und beim compilieren kommt die MEldung:


device.h(16) : error C2524: 'Device' : Die formale Parameterliste des Destruktors muss 'void' sein
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.07.2004, 18:26 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


einem konstruktor kannst du nicht nur keine paramter mitgeben... dem darfst du keine paramter mitgeben was das gleiche ist wie void...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.07.2004, 19:35 Uhr
0xdeadbeef
Gott
(Operator)


Einem Destruktor, meinst du. Ein Konstruktor kann sehr wohl Parameter mitnehmen.

Ich bin sogar der Meinung, dass laut Standard die Parameterliste eines Destruktors eigentlich völlig leer sein muss, also nicht mal void rein darf. Naja, zumindest schrieben die Leute von Addison-Wesley das, wie sehr man sich darauf verlassen kann, weiß ich aber auch nicht.

Warum solltest du einem Destruktor denn auch Parameter mitgeben sollen? Du rufst ihn doch eh nie von Hand auf.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
08.07.2004, 22:52 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat:
0xdeadbeef postete
Ich bin sogar der Meinung, dass laut Standard die Parameterliste eines Destruktors eigentlich völlig leer sein muss, also nicht mal void rein darf. Naja, zumindest schrieben die Leute von Addison-Wesley das, wie sehr man sich darauf verlassen kann, weiß ich aber auch nicht.


Wenn ich da mal meine unmassgebliche Meinung zu abgeben darf:
Die Herren von Addison-Wesley irren:
Gemäß C99, §6.7.5.3 gilt: eine leere Parameterliste entspricht einer nicht weiter spezifizierten Parameterliste:

C++:
void a(); // Nicht spezifizierte Parameterliste
void b(void); // Kein Parameter


Die Deklaration von a ist deprecated-

Gemäß C++98, §8.3.5, C.1.6.8.3.5 gilt: eine leere Parameterliste bedeutet soviel wie kein Parameter:

C++:
void a(); // Kein Parameter
void b(void); // Kein Parameter


Insbesondere gilt:

C++:
void a() { ... }
void a(void) { ... }


Kann nicht kompilieren, weil Deklarationen hinsichtlich Parameterlisten identisch.

Summa summarum: die Deklaration

C++:
void a();


bedeutet in C und in C++ jeweils was anderes. Aber

C++:
void a() { ... }
void a(void) { ... }


sind in C++ das gleiche, was natürlich auch für den dtor gilt.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: