Aktywne Wpisy
Viado +31
PIS PO jedno zło! Obie partie reprezentują ten sam wektor zła tylko skierowany w inne strony. Obie partie są tak samo skorumpowane, zepsute i składają się z kolesiostwa które niszczy nasz kraj. PIS ma swoją propagandę - TVP, PO swoją - TVN. Jedyne różnice dotyczą kwestii dotykających może 0.25% osób kraju czyli podejścia do skrobania i LGBT.
Wy serio nie pamiętacie co się działo za Tuska? ?Jak ludzie pracowali za 5zł bo
Wy serio nie pamiętacie co się działo za Tuska? ?Jak ludzie pracowali za 5zł bo

HNDelectric_pl +244
Poprzednie #rozdajo cieszyło się dużym zainteresowaniem. Lecimy jeszcze raz. ;) Pomka REEG już dotarła do @Roofy
Obecnie pompka to produkt tygodnia i jest na dobrej promce za 199 zł. -> Reeg Air Pump PRO
REEG Air Pump PRO - jest to obecnie najlepsza pompka tego typu. Pompuje 2 razy szybciej i ma 2 razy większą baterię od innych pompek tego typu np. #xiaomi. Pompką można pompować: #rower 30x #samochody 3-5x #
Obecnie pompka to produkt tygodnia i jest na dobrej promce za 199 zł. -> Reeg Air Pump PRO
REEG Air Pump PRO - jest to obecnie najlepsza pompka tego typu. Pompuje 2 razy szybciej i ma 2 razy większą baterię od innych pompek tego typu np. #xiaomi. Pompką można pompować: #rower 30x #samochody 3-5x #




1. Czy jak zrobie taką sytuację:
np:
B - klasa bazowa
D : B - klasa pochodna
B* p;
*p = D(paramtery konstruktora...);
to obiekt utworzy mi się na stercie i muszę w takim wypadku pamiętać o delete?
i czy utworzy mi się normalny pełnoprawny obiekt klasy D (jedynie dostęp będę miał ograniczony przez pryzmat wskaźnika jako do klasy B) ?
2. Jak mogę bezpośrednio stworzyć obiekt klasy pochodnej i przypisać go do wskaźnika klasy bazowej tak jak powyżej ale w przypadku gdy mam vektor wskaźników? np (oznaczenia B i D jak powyżej):
vector v;
v.push_back( D(paramtery konstruktora...) ?co jeszcze? );
B - klasa bazowa
D : B - klasa pochodna
B* p;
*p = D(paramtery konstruktora...);
To mi się skompilowało
*p = new D(paramtery konstruktora...);
v.push_back( new D(paramtery konstruktora...) ?co jeszcze? );
musisz oczywiście później pamiętać o zwalnianiu pamięci za pomocą delete.
p = new D(paramtery konstruktora...);
@PanCogito: Już przestałem czytać
Ale to nie powinno zadzałać. Dlatego że przypisujesz do wskaźnika obiekt tymczasowy (który zostanie usunięty odrazu po utworzeniu).
Bez new obiekt jest zawsze tworzony na stosie.
std::unique_ptri o ƶadnymdeletenie musisz pamiętać. Jak masz nowy kompilator tostd::make_uniquezamiastnewMoja wiedza
wiem że tak się nie powinno robić ale chciałem zapytać bo w jakiejś książce przeczytałem że obiekt się stworzy ale coś będzie z nim ogólnie nie tak (nie mogę teraz znaleźć gdzie to było).
Czyli nie mogę bezpośrednio stworzyć i przypisać do wskaźnika jakiegoś obiektu tak żeby nie był on na stercie.
Chodzi mi o to
w sumie jak tak myślę nad tym to trochę kombinuje. Właściwie to po to się właśnie rzeczy umieszcza na stercie żeby takie coś można było robić muszę tylko potem pamiętać o delete.
Przesiadłem się z C# a tam się takie rzeczy robiło automatycznie ale garbage collector skrzętnie ukrywał całą mechanike.
B* p = D(...)nie jest poprawnym kodem C++ i się nie skompiluje, chyba, ƶe maszoperator B*()()luboperator D*()()przeładowany w klasieBlubD.