C++ naco jsou hlavičkové soubory když budu psát OOP?

ferren

Re:C++ naco jsou hlavičkové soubory když budu psát OOP?
« Odpověď #45 kdy: 26. 04. 2017, 19:02:34 »
tohle je nejake desne rafinovane aprilove vlakno?



Re:C++ naco jsou hlavičkové soubory když budu psát OOP?
« Odpověď #46 kdy: 26. 04. 2017, 19:09:02 »
Kód: [Vybrat]
Uz chapu, proc se tolik lidi vysralo na statickou alokaci a proste vsude v C++ pouzivaji operator new

Je to bezpečný způsob použití velmi podobný jiným rozšířeným jazykům. Krom toho, při alokaci objektů na zásobníku některé OOP mechanismy nefungují (stejně tak v konstruktorech). Samozřejmě je třeba si hlídat memory leaky, ať už jakýmkoliv způsobem.

C++ nabízí dost prostředků, které se vám mohou hodit např. v případě, že píšete něco náročného na výkon. Ale nikdo je vás nenutí využívat, když nechcete. Prostě si vyberte podmnožinu věcí, co C++ umí, a používejte ji; časem ji můžete obohatit např. o nějaké to šablonové peklo.

ferren

Re:C++ naco jsou hlavičkové soubory když budu psát OOP?
« Odpověď #47 kdy: 26. 04. 2017, 19:18:55 »
btw na stl vektoru atd je fajn ze ani nedovoli napsat nejakou idiotskou kombinaci ktera by mohla udelat ten vektor nekonzistentni/faultujici. strkat tam reference, objekty co nemai copy constructor atd atd neprojde uz na urovni kompilace a to nejhorsi co se muze stat neni crash ale ze se budou delat idiotske kopie.
tak to je prakticky se vsemi zde uvadenymi examply tech zarucene faultujicich kodu, zadna z nich neni ani prelozitelny....


zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:C++ naco jsou hlavičkové soubory když budu psát OOP?
« Odpověď #48 kdy: 26. 04. 2017, 19:19:59 »
Tyy vole co to zas ma byt to Object slicing, proc sakra nejde jednoduse udelat

A a = ChildOfA()

?

Jak bych fakt nekoho videl vyuzivat v kodu jakymkoliv zpusobem object slicing, tak bych ho normalne poslal do pejci. Jazyk by vubec nemel neco takoveho umoznovat.

Uz chapu, proc se tolik lidi vysralo na statickou alokaci a proste vsude v C++ pouzivaji operator new, to aby nemuseli resit a chapat tyhlety C++ srajdy, to nemuze chtit zadny normalni clovek chapat. Ty vole dyt to je horsi nez javascript. Kaslu na C++ a napisu si to v Céčku, ja na blbosti nemam cas. C++ vypada asi tak, jako uz od pohledu ten blazen Soustrup.
A proč ne make_shared teda? S tím OOP funguje podle předpokladů. Jinak někdy je fakt lepší čisté C, případně něco relativně blízkého - Rust, Go etc.

Anonym

Re:C++ naco jsou hlavičkové soubory když budu psát OOP?
« Odpověď #49 kdy: 26. 04. 2017, 19:20:36 »
Kód: [Vybrat]
Uz chapu, proc se tolik lidi vysralo na statickou alokaci a proste vsude v C++ pouzivaji operator new

Je to bezpečný způsob použití velmi podobný jiným rozšířeným jazykům. Krom toho, při alokaci objektů na zásobníku některé OOP mechanismy nefungují (stejně tak v konstruktorech). Samozřejmě je třeba si hlídat memory leaky, ať už jakýmkoliv způsobem.

C++ nabízí dost prostředků, které se vám mohou hodit např. v případě, že píšete něco náročného na výkon. Ale nikdo je vás nenutí využívat, když nechcete. Prostě si vyberte podmnožinu věcí, co C++ umí, a používejte ji; časem ji můžete obohatit např. o nějaké to šablonové peklo.

Jo? Tak asi zase tak moc bezpecny zpusob to neni, kdyz tady zboj radi operatory new vubec nepouzivat a kdyz uz, tak misto nich shared pointry. Sam v tom nemas jasno, tak radeji mlc a najdi si o tom neco na stackoverflow.


zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:C++ naco jsou hlavičkové soubory když budu psát OOP?
« Odpověď #50 kdy: 26. 04. 2017, 19:24:57 »
Kód: [Vybrat]
Uz chapu, proc se tolik lidi vysralo na statickou alokaci a proste vsude v C++ pouzivaji operator new

Je to bezpečný způsob použití velmi podobný jiným rozšířeným jazykům. Krom toho, při alokaci objektů na zásobníku některé OOP mechanismy nefungují (stejně tak v konstruktorech). Samozřejmě je třeba si hlídat memory leaky, ať už jakýmkoliv způsobem.

C++ nabízí dost prostředků, které se vám mohou hodit např. v případě, že píšete něco náročného na výkon. Ale nikdo je vás nenutí využívat, když nechcete. Prostě si vyberte podmnožinu věcí, co C++ umí, a používejte ji; časem ji můžete obohatit např. o nějaké to šablonové peklo.

Jo? Tak asi zase tak moc bezpecny zpusob to neni, kdyz tady zboj radi operatory new vubec nepouzivat a kdyz uz, tak misto nich shared pointry. Sam v tom nemas jasno, tak radeji mlc a najdi si o tom neco na stackoverflow.
On to hlavně radí Stroustrup nebo třeba Sutter, lidi, co navrhli C++ tak, aby new bylo někde hluboko ve standardní knihovně. Jinak je new dobré je pro vytvoření objektu, který potřebuji dát odkazem mimo C++, třeba do C nebo C#. Jinak unique_ptr má zanedbatelnou režii.

Re:C++ naco jsou hlavičkové soubory když budu psát OOP?
« Odpověď #51 kdy: 26. 04. 2017, 19:29:35 »
Citace
Jo? Tak asi zase tak moc bezpecny zpusob to neni, kdyz tady zboj radi operatory new vubec nepouzivat a kdyz uz, tak misto nich shared pointry. Sam v tom nemas jasno, tak radeji mlc a najdi si o tom neco na stackoverflow.

I se smart pointery se interně alokuje dynamicky a je dobré o tom vědět. Moje poznámka o bezpečnosti se vztahovala k tomu, že při použití dynamické alokace se vše bude chovat podobně jako jsou lidé zvyklí z jiných jazyků. Že se práce s čistými pointery nedoporučuje, je jasné. Ani smart pointery ale neřeší všechno.

Když budete používat new a čisté ukazatele, sice se nevyhnete problémům s memory leaky a obecně s pointery (což není nic objevného), ale zase se vyhnete věcem, nad kterými tady nadáváte.

Re:C++ naco jsou hlavičkové soubory když budu psát OOP?
« Odpověď #52 kdy: 26. 04. 2017, 19:36:07 »
Citace
OOP se vzdyt dela v Jave. C++ je jen nepovedeny hack. Vzdyt i samotny kernel je psan radeji v cistem C.

Pokud můžu mluvit za WIndows kernel, tak některé části v C++ jsou (např. Windows Driver Framework) a někteří výrobci své ovladače píší také v tomto jazyku. Pokud si člověk dává pozor, nepředstavuje C++ v jádře problém.

Kiwi

Re:C++ naco jsou hlavičkové soubory když budu psát OOP?
« Odpověď #53 kdy: 26. 04. 2017, 19:39:08 »
C++ na nic nového nepoužívej. Jak dlouho asi ještě potrvá, než se přijde na to, že C++ byla fakt slepá ulička... Ani ryba, ani rak.
Jedeš na výkon a jde o systémové/low level věci? -> C
Jedeš na výkon a jde o matematiku? -> Fortran
Jedeš na výkon a jde o kritické věci? -> Ada
Nejde o výše uvedené a jedeš na výkon? -> na této úrovni to nevězí, zvol si vhodnou low level/matematickou/kritickou knihovnu a svou vrstvu napiš v čem chceš. C++ a Brainfucku bych se ale vyhnul.
 :D

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:C++ naco jsou hlavičkové soubory když budu psát OOP?
« Odpověď #54 kdy: 26. 04. 2017, 19:53:44 »
Citace
OOP se vzdyt dela v Jave. C++ je jen nepovedeny hack. Vzdyt i samotny kernel je psan radeji v cistem C.

Pokud můžu mluvit za WIndows kernel, tak některé části v C++ jsou (např. Windows Driver Framework) a někteří výrobci své ovladače píší také v tomto jazyku. Pokud si člověk dává pozor, nepředstavuje C++ v jádře problém.
macOS dtto.

steve

Re:C++ naco jsou hlavičkové soubory když budu psát OOP?
« Odpověď #55 kdy: 26. 04. 2017, 20:38:05 »
macOS je ObjectiveC ne C++, je to dost rozdil.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:C++ naco jsou hlavičkové soubory když budu psát OOP?
« Odpověď #56 kdy: 26. 04. 2017, 20:39:57 »
macOS je ObjectiveC ne C++, je to dost rozdil.
Jenže řeč je o kernelu, a tam je část v C++.

Kit

Re:C++ naco jsou hlavičkové soubory když budu psát OOP?
« Odpověď #57 kdy: 26. 04. 2017, 21:09:01 »
C++ na nic nového nepoužívej. Jak dlouho asi ještě potrvá, než se přijde na to, že C++ byla fakt slepá ulička... Ani ryba, ani rak.
Jedeš na výkon a jde o systémové/low level věci? -> C
Jedeš na výkon a jde o matematiku? -> Fortran
Jedeš na výkon a jde o kritické věci? -> Ada
Nejde o výše uvedené a jedeš na výkon? -> na této úrovni to nevězí, zvol si vhodnou low level/matematickou/kritickou knihovnu a svou vrstvu napiš v čem chceš. C++ a Brainfucku bych se ale vyhnul.
 :D

Tato sada pravidel vypadá docela rozumně. C++ bych však úplně nezatracoval - dá se využít tam, kde je na vývoj dostatek času a musí se přitom šetřit každá nanosekunda běhu aplikace.

Kiwi

Re:C++ naco jsou hlavičkové soubory když budu psát OOP?
« Odpověď #58 kdy: 26. 04. 2017, 22:25:46 »
C++ na nic nového nepoužívej. Jak dlouho asi ještě potrvá, než se přijde na to, že C++ byla fakt slepá ulička... Ani ryba, ani rak.
Jedeš na výkon a jde o systémové/low level věci? -> C
Jedeš na výkon a jde o matematiku? -> Fortran
Jedeš na výkon a jde o kritické věci? -> Ada
Nejde o výše uvedené a jedeš na výkon? -> na této úrovni to nevězí, zvol si vhodnou low level/matematickou/kritickou knihovnu a svou vrstvu napiš v čem chceš. C++ a Brainfucku bych se ale vyhnul.
 :D

Tato sada pravidel vypadá docela rozumně. C++ bych však úplně nezatracoval - dá se využít tam, kde je na vývoj dostatek času a musí se přitom šetřit každá nanosekunda běhu aplikace.

No tak je to samozřejmě s nadsázkou, C++ mě živilo nějakých 15 let. :) Ale právě proto tvrdím, co tvrdím. Jeden z mých posledních C++ projektů byla modifikace průmyslového firmware (128 KB @ ARM7TDMI) tak, aby se určitý nový výpočet vešel do synchronního rámce a jeho algoritmus a potřebná data do paměti, v níž zbývaly nějaké 4 KB. To ++ opravdu nebylo nic jiného než jen 4 zkřížené klacky pod nohama toho C. I programy v Assembleru se mi upravovaly pohodlněji a příjemněji než v C++.
Momentálně jsem na úplně novém C projektu (zahájen před 2 lety from scratch) a ty klacky tu nikomu nechyběj. Aplikační vrstva se vyvíjí v Elixiru. Po dlouhé době mě práce opět baví. Je to jako kdyby se člověk zbavil koule na noze a cítíme to všichni v týmu. Prostě to objektové pojetí v C++ mi nikdy nesedlo a ani si nevzpomínám, že bych kdy viděl program, u něhož bych mohl říct "sakra, to je vono, takhle by to mělo vypadat". Narozdíl od Obj C nebo Smalltalku. Takže jestli někdo víte o nějakém open source projektu v C++ o němž byste řekli, že tak by to mělo vypadat, tak se rád mrknu.

YF

Re:C++ naco jsou hlavičkové soubory když budu psát OOP?
« Odpověď #59 kdy: 26. 04. 2017, 22:43:15 »
C++ na nic nového nepoužívej. Jak dlouho asi ještě potrvá, než se přijde na to, že C++ byla fakt slepá ulička... Ani ryba, ani rak.
Jedeš na výkon a jde o systémové/low level věci? -> C
Jedeš na výkon a jde o matematiku? -> Fortran
Jedeš na výkon a jde o kritické věci? -> Ada
Nejde o výše uvedené a jedeš na výkon? -> na této úrovni to nevězí, zvol si vhodnou low level/matematickou/kritickou knihovnu a svou vrstvu napiš v čem chceš. C++ a Brainfucku bych se ale vyhnul.
 :D

Tato sada pravidel vypadá docela rozumně. C++ bych však úplně nezatracoval - dá se využít tam, kde je na vývoj dostatek času a musí se přitom šetřit každá nanosekunda běhu aplikace.

No tak je to samozřejmě s nadsázkou, C++ mě živilo nějakých 15 let. :) Ale právě proto tvrdím, co tvrdím. Jeden z mých posledních C++ projektů byla modifikace průmyslového firmware (128 KB @ ARM7TDMI) tak, aby se určitý nový výpočet vešel do synchronního rámce a jeho algoritmus a potřebná data do paměti, v níž zbývaly nějaké 4 KB. To ++ opravdu nebylo nic jiného než jen 4 zkřížené klacky pod nohama toho C. I programy v Assembleru se mi upravovaly pohodlněji a příjemněji než v C++.
Momentálně jsem na úplně novém C projektu (zahájen před 2 lety from scratch) a ty klacky tu nikomu nechyběj. Aplikační vrstva se vyvíjí v Elixiru. Po dlouhé době mě práce opět baví. Je to jako kdyby se člověk zbavil koule na noze a cítíme to všichni v týmu. Prostě to objektové pojetí v C++ mi nikdy nesedlo a ani si nevzpomínám, že bych kdy viděl program, u něhož bych mohl říct "sakra, to je vono, takhle by to mělo vypadat". Narozdíl od Obj C nebo Smalltalku. Takže jestli někdo víte o nějakém open source projektu v C++ o němž byste řekli, že tak by to mělo vypadat, tak se rád mrknu.

jak resite interoperabilitu c / elixir?