Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

3 problemy

Ostatnio zmodyfikowano 2009-05-16 16:23
Autor Wiadomość
gorgh
Temat założony przez niniejszego użytkownika
3 problemy
» 2009-05-16 15:55:22
1. W ksiazce "thinking in c++" jest taki przyklad tworzenia egzemplarzy objektow:

szblon<klasa>objekt;
objekt.add(klasa::create());

klasa * klasa::create(){return new klasa;}

Dodam,ze funkcja create jest private member. Przy kompilacji wyskakuje komunikat, ze probuje wywolac create() bez egzemplarza klasy. Jak rozumiec ten sposob wywolywania funkcji?

2. Czy destruktor moze niszczyc objekty tworzone w sposob dynamiczny (jak powyzej)?

3. W wxWidgets klasa wxFrame(tworzaca okno) posiada konstruktor przyjmujacy jako parametry objekty klas wxPoint i wxSize:

wxFrame * window=new wxFrame(....wxPoint(50,50),wxSize(200,200)...)

Zastanawiam sie co znaczy zapis wxPoint(50,50) skoro wxPoint to nazwa klasy a nie n.p. egzemplarza i w jaki sposob w tym przypadku tworzony jest objekt.
Za pomoc z gory dzieki,Kamil Trzaska.
P-6907
WunM
» 2009-05-16 16:19:43
1)Nie widze całej klasy, ale spróbuję. Spróbuj coś takiego:

C/C++
szblon < klasa > objekt;
szblon < klasa > objekt2;
objekt.add( objekt2::create() );

Egzemplarz klasy jest zapisany w pamięci i możesz na nim operować. Na samej klasie to już nie.

3) A  konstruktor ;)Też jest takiej samej nazwy.
P-6908
DeBugger
» 2009-05-16 16:23:10
2) Obiekt zawsze uruchamia destruktor przy niszczeniu siebie. Obiekt niedynamiczny zawsze na końcu instrukcji zawartej w nawiasach '{', '}', zaś dynamiczny po słowie kluczowym:
delete
Np.
delete zmienna;
P-6909
« 1 »
  Strona 1 z 1