latajacaryba Temat założony przez niniejszego użytkownika |
Szybkie konstruowanie obiektów będących składnikami klasy » 2016-12-13 16:57:36 Witam. Jak wiemy, jeśli obiekt klasy A (nazwijmy go X) jest składnikiem klasy B, to taki obiekt X musimy konstruować na liście inicjalizacyjnej konstruktora klasy B. A teraz 2 pytania: 1. co jeśli nie wiemy, ile obiektów klasy a chcemy mieć w klasie B. Np. klasa B to sklep - każdy sklep ma inną liczbę produktów. 2. Jeśli mamy takich obiektów w klasie B 20, a każdy z tych obiektów ma wiele składników (przykład): class A { int a; int b; int c; float d; string f; string g; } class B { A obiekt1; A obiekt2; A obiekt3; A obiekt20; }
To co? Konstruktor w klasie B na 20(obiektów)*7(składników) = 140 zmiennych? Nie da się szybciej? PS. Jeśli się da, proszę bez wektorów, kontenerów, funkcji wbudowanych, flag... Z góry dzięki :) |
|
michal11 |
» 2016-12-13 17:13:16 Pro tip "talice". wektorów, kontenerów, funkcji wbudowanych, flag |
to po co to piszesz w c++? przesiądź się na jakiś język w którym będzie ci wygodniej pisać. |
|
pekfos |
» 2016-12-13 17:37:21 Jak wiemy, jeśli obiekt klasy A (nazwijmy go X) jest składnikiem klasy B, to taki obiekt X musimy konstruować na liście inicjalizacyjnej konstruktora klasy B. |
Musimy lub nie musimy. |
|
DejaVu |
» 2016-12-13 17:41:47 PS. Jeśli się da, proszę bez wektorów, kontenerów, funkcji wbudowanych, flag...
|
Wskaźniki :) Obiekt niech powstaje dopiero wtedy gdy jest potrzeba jego użycia. |
|
latajacaryba Temat założony przez niniejszego użytkownika |
» 2016-12-13 17:42:28 @Michal Rozumiem, że masz na myśli to, że składnikiem klasy B będzie tablica obiektów klasy A? To są 2 problemy -zajmuje miejsce -jak skonstruować później taki obiekt? " to po co to piszesz w c++? przesiądź się na jakiś język w którym będzie ci wygodniej pisać." Nie uczyłem się o tym. Idę po kolei to co mam w książce, staram się być dokładnym, nie chcę skakać o 200 stron dalej by dowiedzieć się co to flaga. |
|
latajacaryba Temat założony przez niniejszego użytkownika |
» 2016-12-13 17:48:04 @Pekfos Tzn. nie musimy, ale jak chcemy to tylko tam? Da się go skonstruować gdzie indziej? @DejaVu O tym nie pomyślałem ;) Masz na myśli coś takiego : class Sklep { public: Ksiazka * wsk; }; int main() { Sklep naeba; naeba.wsk = new Ksiazka( ); }
|
|
michal11 |
» 2016-12-13 17:53:10 Jak to skonstruować później? Z definicji konturujesz w konstruktorze później możesz tylko nadpisać lub zmodyfikować dany obiekt. Chyba, ze chcesz zrobić lazy initialization. |
|
latajacaryba Temat założony przez niniejszego użytkownika |
» 2016-12-13 18:03:04 @up Pekfos w odpowiedzi na moje zdanie: "Jak wiemy, jeśli obiekt klasy A (nazwijmy go X) jest składnikiem klasy B, to taki obiekt X musimy konstruować na liście inicjalizacyjnej konstruktora klasy B." Napisał "Musimy lub nie musimy."
Chodziło mu pewnie o to, że nie musimy konstruować tego obiektu. Ja jednak się zastanawiam, czy coś takiego w ogóle wchodzi w grę. |
|
« 1 » 2 3 |