Klasy zagnieżdżone, konstruktor i referencja
Ostatnio zmodyfikowano 2012-09-02 01:19
Admixior Temat założony przez niniejszego użytkownika |
Klasy zagnieżdżone, konstruktor i referencja » 2012-08-30 00:10:00 Jak napisać konstruktor? Wydawałoby się proste jednak moja klasa jest skomplikowana więc podam jej urywek...
...w środku niej jest struktura bez nazwy...
struct { string tekst_pre, tekst_post; String txt; unsigned int cur_sel; } select;
A więc...
pisząc konstruktor dla klasy nadrzędnej nie mogę się posłużyć w liście inicjalizacyjnej(<-- gdzie w tym słowie jest błąd?) w ten sposób "select.tekst_pre(...)", bo spodziewano się '(' a nie '.' |
.
Więc stwierdziłem że chce napisać dla tej klasy konstruktor, ale klasa się zwie klasa_nadrzedna::<unnamed>.
Czy można zrobić w stylu traktowania select jako nazwy klasy do konstruktora (aczkolwiek byłoby to dziwne bo jak ktoś ma wpisane 2 nazwy?).
Ewentualnie czy w ogóle istnieje taka możliwość lub podobne, zgodne lub nie ze standardem? |
|
DejaVu |
» 2012-08-30 01:14:48 W zasadzie to zapis który przedstawiłeś tworzy obiekt o określonej nazwie, a nie klasę/strukturę o określonej nazwie. Ponadto jeżeli dziedziczysz po klasie X to z klasy X możesz wywołać tylko i wyłącznie konstruktor na liście inicjalizacyjnej - nic innego. |
|
Admixior Temat założony przez niniejszego użytkownika |
» 2012-08-30 23:56:21 Ups.. Czytałem aż w końcu zorientowałem się że źle napisałem (sry). Chodziło mi o klasę zdefiniowaną w klasie... I właśnie nie wiem jak zrobić. |
|
m4tx |
» 2012-08-31 07:41:36 Napisałeś to wszystko tak chaotycznie, że kompletnie się Ciebie nie da zrozumieć. Chodziło mi o klasę zdefiniowaną w klasie... |
Chodzi Ci o coś takiego? class outer { class inner { }; inner jakisobiekt; }; To się nested class zwie. |
|
Admixior Temat założony przez niniejszego użytkownika |
» 2012-08-31 18:43:18 Tak o to mi chodziło it wygląda mniej więcej tak: class pierwsza { bool click; struct { int zmienna; } nazwa; pierwsza() : clicked( false ) { } };
i chcę zainicjalizować zmienną "zmienna". (Choćby dlatego że to będzie referencja :p) |
|
Mrovqa |
» 2012-08-31 18:50:51 class pierwsza { bool click; struct { int zmienna; } nazwa; pierwsza() : clicked( false ) , nazwa.zmienna( 4 ) { } };
To zachowuje się normalnie jak klasa :) Później by odwołać się zewnątrz do tego: pierwsza naszObj; naszObj.nazwa.zmienna = xxx;
@down nie ten temat? To jest jakiś odpowiedni? Poza tym nie masz jego gg?? Jak ja mam to dziwne, byś ty go nie miał. Btw może się spotkamy w pon?? :D (pisz->gg) |
|
CodeMeister |
» 2012-08-31 19:03:40 Nie ten temat, ale Admixior - w Poniedziałek na 8.30 do szkoły, zbiórka jest :) |
|
Mrovqa |
» 2012-08-31 19:54:46 Przepraszam za błąd wyżej. Nie kompilowałem, stąd mam błąd. Na liście inicjalizacyjnej klasy nadrzędnej dla obiektu klasy zagnieżdżonej musisz wywołać konstruktor :) class pierwsza { bool click; struct { int zmienna; } nazwa; pierwsza() : clicked( false ) , nazwa( { 4 } ) { } } /edit: Jeżeli chcesz coś napisać, to pisz nowy post, a nie edytuj pierwszy. btw jakoś dziwnie parser interpretuje (wyświetla) ten kod... :) |
|
« 1 » 2 3 |