3 problemy
Ostatnio zmodyfikowano 2009-05-16 16:23
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. |
|
WunM |
» 2009-05-16 16:19:43 1)Nie widze całej klasy, ale spróbuję. Spróbuj coś takiego: 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. |
|
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; |
|
« 1 » |