C++ - vprašanja

Vse kar diši na C++

Moderatorji: Kroko, tilz0R

C++ - vprašanja

OdgovorNapisal/-a Kroko » 23 Jul 2018, 12:23

Če ima kdo kakšno vprašanje z veseljem odgovorim.
http://www.planet-cnc.com poskakuješ na eni nogi in žvižgaš alpske podoknice Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 4735
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 676 krat
Prejel zahvalo: 1624 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: C++ - vprašanja

OdgovorNapisal/-a S53DZ » 23 Jul 2018, 12:52

Pri definiciji razreda Component:

Koda: Izberi vse
   virtual Draw() = 0;

mi prevajalnik protestira tako:

Multiple markers at this line
- ISO C++ forbids declaration of 'Draw' with no type [-
fpermissive]
- virtual int Component::Draw()
- Syntax error

Pri definiciji razreda Button mi protestira pri:

Koda: Izberi vse
    _Listener(0)

tako:
class 'Button' does not have any field named '_Listener'

Kakšen je nasvet?
Uporabniški avatar
S53DZ
 
Prispevkov: 1160
Pridružen: 18 Jan 2015, 10:58
Kraj: Ljubljana
Zahvalil se je: 204 krat
Prejel zahvalo: 392 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 42

Re: C++ - vprašanja

OdgovorNapisal/-a Kroko » 23 Jul 2018, 13:01

zatipkal sem se:
virtual void Draw() = 0;

Še na nekaj mestih sem pozabil void. Kodo sem sedaj popravil in dal v online prevajalnik:
http://coliru.stacked-crooked.com/a/7e0034de1b03bca4
http://www.planet-cnc.com poskakuješ na eni nogi in žvižgaš alpske podoknice Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 4735
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 676 krat
Prejel zahvalo: 1624 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: C++ - vprašanja

OdgovorNapisal/-a S53DZ » 23 Jul 2018, 14:00

Mene je pri destruktorju opozoril še na tole:
Class 'Component' has virtual method 'Draw' but non-virtual destructor
in sem mu dodal "virtual".

Pri "override" pa:
Multiple markers at this line
- Implements Component::Draw
- override controls (override/final) only available with -std=c++11 or -std=gnu++11 [enabled by
default]
Uporabniški avatar
S53DZ
 
Prispevkov: 1160
Pridružen: 18 Jan 2015, 10:58
Kraj: Ljubljana
Zahvalil se je: 204 krat
Prejel zahvalo: 392 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 42

Re: C++ - vprašanja

OdgovorNapisal/-a Kroko » 23 Jul 2018, 14:25

Override je C++11 standard. Vsi sodobni prevajalniki ga podpirajo precej dobro in je kar nuja.

Override je izredno pomemben saj z njim eksplicitno določimo "preglasovanje" in se izognemo dvoumnosti.
Destruktor v izpeljanjem zazredu mora nujno biti virtualen.


C++14 in C++17 pa so še precej v povojih čeprav je na nekaterih platformah C++14 odličen.
http://www.planet-cnc.com poskakuješ na eni nogi in žvižgaš alpske podoknice Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 4735
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 676 krat
Prejel zahvalo: 1624 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

C++ - vprašanja

OdgovorNapisal/-a VolkD » 23 Jul 2018, 15:38

I love black cat. :mrgreen:

Kroko, tole je fino. Ampak, da bi mi vsi skupaj tole preizkušali bi rabili malo, res malo navodil kako delati te preizkuse. Najbolje kar na PC. Še bolje verjetno v Visual studio.
Takole par vrstic kje se tega zmaja dobi, kaj instalirati in kako pognati, da bo to C++.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 40269
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 8357 krat
Prejel zahvalo: 4893 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: C++ - vprašanja

OdgovorNapisal/-a Kroko » 23 Jul 2018, 16:01

Ali linki do online compilerja ne delajo?
http://www.planet-cnc.com poskakuješ na eni nogi in žvižgaš alpske podoknice Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 4735
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 676 krat
Prejel zahvalo: 1624 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: C++ - vprašanja

OdgovorNapisal/-a VolkD » 23 Jul 2018, 18:32

Delajo, delajo, a sem ogromnokrat v situaciji, ko imam na telefonu edge in to je vse kar imam. Potem se pa najde kak pameten pa mi MMS s kako veliko sliko pošlje. No potem je pa še pogovor jecljajoč. Bi res bilo dobro imeti te zadeve na prevajalniku, ki je lokalno na računalniku.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 40269
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 8357 krat
Prejel zahvalo: 4893 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: C++ - vprašanja

OdgovorNapisal/-a Kroko » 28 Jul 2018, 01:48

Je kakšen interes da tole nadaljujemo? Ima kdo kakšno vprašanje?
http://www.planet-cnc.com poskakuješ na eni nogi in žvižgaš alpske podoknice Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 4735
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 676 krat
Prejel zahvalo: 1624 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: C++ - vprašanja

OdgovorNapisal/-a tilz0R » 28 Jul 2018, 01:58

Seveda je interes. Recimo overload ++ operator ter zakaj je mogoče bolje uporabljati ++obj namesto obj++ (v recimo for zanki), kjer je obj nek objekt classa z več spremenljivkami. Taki protips od nekoga, ki se s tem dnevno srečuje, bi bili izredno uporabni.

Teorijo se da naučiti, dobro prakso težje.
Knowledge sharing is people' caring., T. MAJERLE
Uporabniški avatar
tilz0R
 
Prispevkov: 1790
Pridružen: 18 Jan 2015, 00:12
Kraj: Črnomelj
Zahvalil se je: 225 krat
Prejel zahvalo: 474 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 255


Vrni se na C++

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost