|
|
||||||
|
#1
|
|
|
|
|
Hej,
Jaki jest czas zycia zmiennej statycznej w funkcji? Czy podestrukcji jest ona odbudowywana? Np. Type& fun() { static Type t; return t; } Obiekt "t" jest tworzony przy pierwszym wywolaniu funckji fun. Jesli program przechodzi poza main() zmienna statyczna moze byc zniszczona. Czy jesli jakis inny destruktor zawola taka funkcje to czy ona zostanie odbudowana? Wydaje mi sie, ze nie, ale nie moge znalezc na to paragrafu w standardzie. Ten kod to jakas pseudo implementacja singletona, ktorej nie lubie :-). Pozdrawiam, |
|
|
|
#2
|
|
|
|
|
Seweryn Habdank-Wojewódzki pisze:
> Hej, > > Jaki jest czas zycia zmiennej statycznej w funkcji? Czy podestrukcji > jest ona odbudowywana? > Np. > > Type& fun() > { > static Type t; > return t; > } > > Obiekt "t" jest tworzony przy pierwszym wywolaniu funckji fun. Jest tworzony "przed pierwszym wywolaniem". Tzn standard ztcp nie daje gwarancji, ze to bedzie przy 1 wywolaniu a nie np. przy starcie. > Jesli program przechodzi poza main() zmienna statyczna moze byc > zniszczona. Czy jesli jakis inny destruktor zawola taka funkcje > to czy ona zostanie odbudowana? Nie. Po zniszczeniu obiektu odwolanie do niego to ub. Alexandrescu mial w którejs z ksiazek opisanego "fenixa" który odradzal sie po zniszczeniu dzieki placement new. Ale ztcw to tez bylo cos w stylu "dziala na wszystkich znanych implementacjach, ale jest to ub". > > Wydaje mi sie, ze nie, ale nie moge znalezc na to paragrafu w > standardzie. > > Ten kod to jakas pseudo implementacja singletona, ktorej nie > lubie :-). Moze wlasnie inspirowana pomyslem pana A. |
|
#3
|
|
|
|
|
Witam,
> Nie. Po zniszczeniu obiektu odwołanie do niego to ub. Alexandrescu miał > w którejś z książek opisanego "fenixa" który odradzał się po zniszczeniu > dzięki placement new. Ale ztcw to też było coś w stylu "działa na > wszystkich znanych implementacjach, ale jest to ub". Super. Wlasnie tego argumentu mi brakowalo - zaraz do code review chlapne odwolanie do Aleksandrescu i mam klopot z glowy :-). Pozdrawiam, |
|
#4
|
|
|
|
|
On 5 Mar, 13:56, Seweryn Habdank-Wojewódzki <habd> wrote:
> Hej, > > Jaki jest czas zycia zmiennej statycznej w funkcji? Czy podestrukcji > jest ona odbudowywana? > Np. > > Type& fun() > { > static Type t; > return t; > > } > > Obiekt "t" jest tworzony przy pierwszym wywolaniu funckji fun. > Jesli program przechodzi poza main() zmienna statyczna moze byc > zniszczona. Czy jesli jakis inny destruktor zawola taka funkcje > to czy ona zostanie odbudowana? Czy to naprawde jest wazne? Po prostu trzeba napisc tak program, aby byl niezalezny od kolejnosci wywolania konstruktorow i destruktorow wszystkich statycznych obiektow. Pozdrawiam |
|
#5
|
|
|
|
|
On 05/03/2010 12:56, Seweryn Habdank-Wojewódzki wrote:
> Jesli program przechodzi poza main() zmienna statyczna moze byc > zniszczona. Czy jesli jakis inny destruktor zawola taka funkcje > to czy ona zostanie odbudowana? > > Wydaje mi sie, ze nie, ale nie moge znalezc na to paragrafu w > standardzie. > > Ten kod to jakas pseudo implementacja singletona, ktorej nie > lubie :-). zastosuj Schwarz Counter B. |
|
|
| Podobne wątki | |
| Pytanie odnośnie zmiennej statycznej Witam Znalazłem program, gdzie jest dana klasa (w osobnym pliku): public class plik2 { //operacje } W drugim pliku jest następująca systuacja: |
|
| Odwolac sie do zmiennej globalnej z klasy statycznej Mam klase(wywolywane sa metody na zecz klassy nie obiektu) i w jednej z jej funkcji proboje odwolac sie do pewnego globalne obiektu i wywolac jego funkcje wiec... |
|
| Dlaczego nie ma w Locale zmiennej statycznej dla języka polskiego ? Ja uzyskuję język polski poprzez metodę getDefault(). No ale jakbym pracował np. na maszynie gdzie ustawiony jest jako domyślny inny język, to jak sobie ustawić na polski ?... |
|
| dostęp do zmiennej statycznej - w czym jest problem/ wszystko dotyczy wykorzystania widget'ów SWT są dwie klasy Okno i Polaczenie. w klasie Okno zadeklarowałem globalny statyczny obiekt TableItem wiersz (wiersz tablicy do... |
|
|
Czasy w strefie GMT. Teraz jest 23:17. | Privacy Policy
|