Ręczne wywoływanie konstruktora/destruktora.
Ostatnio zmodyfikowano 2010-01-01 15:26
aRusher Temat założony przez niniejszego użytkownika |
Ręczne wywoływanie konstruktora/destruktora. » 2010-01-01 13:09:00 Dlaczego konstruktor/destruktor (zadeklarowany podobnie jak inne funkcje składowe klasy - w sekcji public) przy ręcznym wywoływaniu jest wywoływany w taki sposób:
obiekt_klasy.nazwa_klasy::nazwa_klasy(); lub obiekt_klasy.nazwa_klasy::~nazwa_klasy();
a nie po prostu: obiekt_klasy.nazwa_klasy();
czy też
obiekt_klasy.~nazwa_klasy();
Wiem, że takie ręczne wywołania są rzadkie, jednak zastanawia mnie to. |
|
Elaine |
» 2010-01-01 13:59:09 Jawne wywołanie konstruktora to raczej char foo[ sizeof( sth ) ]; new( foo ) sth( 8, 11, "sześćset sześćdziesiąt sześć" ); natomiast z destruktorem można ...a nad { i } się nie zastanawiałeś? To jest dopiero nielogiczne :S |
|
aRusher Temat założony przez niniejszego użytkownika |
» 2010-01-01 15:14:10 Czyli jeszcze raz. Destruktor mogę wywoływać tak:
obiekt_klasy.nazwa_klasy::~nazwa_klasy();
i tak:
obiekt_klasy.~nazwa_klasy();
?
To ostatnie było ironią? Po prostu nie rozumiem dlaczego pisać więcej, skoro mniej jest poprawnie. |
|
Elaine |
» 2010-01-01 15:26:53 Ironia? Ja? Coś ci się chyba pokręciło :) |
|
« 1 » |