Dynamiczny obiekt - proszę o pomoc.

0

3.Utwórz obiekt dynamiczny audi i wywołaj funkcje pobieranie() oraz wydruk()

class samochod
{
private:
string marka;
int rocznik;
public:
void pobieranie();
void wydruk();
};

Kompletnie nie ogarniam obiektów dynamicznych, jak to zrobić ?
Jakieś rady naprowadzające ? Proszę o pomoc !

1
samochod *s=new samochod();
0
_13th_Dragon napisał(a):
samochod *s=new samochod();

Trzeba pamiętać jeszcze o zwolnieniu pamięci gdy obiekt nie będzie już potrzebny

delete s

Warto jeszcze dodać że w tym przypadku mamy do czynienia ze wskaźnikiem do obiektu. Metody wywołuje się operatorem ->. Dotyczy to również pól.

s->pobieranie()
0
_13th_Dragon napisał(a):
samochod *s=new samochod();

beznadziejne rozwiązanie, memory leak

a co do Twojego komentarza to nadinterpretowałem chyba rzeczywiście pytanie, ponieważ samochód ma metodę pobieranie() dlatego uznałem że chodzi o inicjalizację dynamiczną, mój błąd

"lol sam jesteś memory leak :D nie używa się sformułowań których się nie rozumie"

http://i.imgur.com/Ui9xtwq.png

"Aż mi cię żal. Skoro po jednej linijce kodu twierdzisz że już jest memory leak, to rozumiem że 99% kodów na forum skomentujesz jako nie kompiluje się bo są niekompletne i jak wstawisz tylko taki fragment kodu to kompilator zaprotestuje. Żelazna logika, nie ma co :D"

tutaj większość z Was tak działa, dostosowywuję się

kod jest słaby, beznadziejny i tyle

wystarczyło napisać

std::unique_ptr<samochód> s(new samochod); i byłoby po problemie, ale to jest wyższa szkołą jazdy rozumiem

najpierw wytykasz mi nieznajomość terminu

a teraz piszesz, że wyciągam "przesadne" argumenty;

określ się​ raz a dobrze, bo wygląda na to, że nie było tematu;

w nowoczesnym c++ nie używa się​ operatora delete, new zginie tylko jak będzie wspierane std::make_unique (teraz chyba tylko clang 3.4 wspiera ową implementację)

mam nadzieję, że już darjesz sobie te bezproduktywne komentarze, to nie filozofia;

ja bym raczej uznał, że Pan pisze bzdury Panie Shalom, albo zalazł Pan już tak daleko, że nie może się​ wycofać

http://i.imgur.com/awHeFD6.png slajd z jednej z prezentacji o nowoczesnym c++

cała prezentacja tutaj http://www.google.pl/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCsQFjAA&url=http%3A%2F%2Fbecpp.org%2Fblog%2Fwp-content%2Fuploads%2F2012%2F04%2FWriting-Modern-C%2B%2B.pptx&ei=Gas-U7mSIYGGywPS04K4Aw&usg=AFQjCNHPHUXh2ZCrMcEyesyg0kSxL3dUlw&bvm=bv.64125504,d.bGQ&cad=rja

Odpuść Pan już, skacze Pan z wątku na wątek. W ostatnim z komentarzy napisał Pan "Z tym "nieużywaniem" new/delete to zależy od tego w jakim kodzie, bo jest wiele miejsc gdzie warto jednak urwać te kilka cykli procesora ;] Podsumowując: piszesz bzdury... " - dostał Pan odpowiedź "armatnią ze znaczkiem Microsoftu" i teraz pieprzy Pan coś o memory leaku, którego dawno ubiłem std::unique_ptr; koniec tematu strata czasu dla nas obu. Albo Pan wyciągnie lekcję, albo nie. Wisi mi to. I niech Pan sobie wmawia, że nie wiem co to jest memory leak, bo to pewnie jedyna rzecz, która Pana tutaj pokrzepia. Ponoć kłamstwo powtarzane wielokrotnie staje się prawdą.

0

Odpowiedź @_13th_Dragon jest dobra ale znacznie lepszą odpowiedź dał @Sarrus.
Poza tym tak jak napisał "gośćabc" powinno się tego typu zapisów unikać i podał on najlepsze rozwiązanie

std::unique_ptr< samochód > s( new samochod );

lub w c++14

auto p = std::make_unique< samochod >( new samochod );

Nie dziwie się że "gośćabc" wytyka pewne rzeczy @_13th_Dragon bo on bardzo często postępuje w ten sam sposób ;)

0

szkoda czasu na kłótnie z nim, zaraz Ci wyniesie połowę implementacji STL zaimplementowanej w C na raw wskaźnikach, implementacji sprzed 10 lat

niech sobie płacze

1 użytkowników online, w tym zalogowanych: 0, gości: 1