abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 17:22 | Nová verze

    Byla vydána nová verze 19 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v changelogu.

    Ladislav Hagara | Komentářů: 0
    dnes 03:44 | Nová verze

    Bitwig Studio (Wikipedie) bylo vydáno ve verzi 6. Jedná se o proprietární multiplatformní (macOS, Windows, Linux) digitální pracovní stanici pro práci s audiem (DAW).

    Ladislav Hagara | Komentářů: 0
    dnes 02:11 | Komunita

    Společnost Igalia představila novou linuxovou distribuci (framework) s názvem Moonforge. Jedná se o distribuci určenou pro vestavěné systémy. Vychází z projektů Yocto a OpenEmbedded.

    Ladislav Hagara | Komentářů: 0
    dnes 00:44 | Nová verze

    Google Chrome 146 byl prohlášen za stabilní. Nejnovější stabilní verze 146.0.7680.71 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 29 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    dnes 00:22 | Nová verze

    D7VK byl vydán ve verzi 1.5. Jedná se o fork DXVK implementující překlad volání Direct3D 3 (novinka), 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.

    Ladislav Hagara | Komentářů: 0
    včera 23:22 | Nová verze

    Bylo vydáno Eclipse IDE 2026-03 aneb Eclipse 4.39. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 4
    včera 10:22 | Upozornění

    Ze systému Slavia pojišťovny uniklo přibližně 150 gigabajtů citlivých dat. Jedná se například o pojistné dokumenty, lékařské záznamy nebo přímou komunikaci s klienty. Za únik může chyba dodavatelské společnosti.

    Ladislav Hagara | Komentářů: 11
    včera 10:11 | IT novinky

    Sněmovna propustila do dalšího kola projednávání vládní návrh zákona o digitální ekonomice, který má přinést bezpečnější on-line prostředí. Reaguje na evropské nařízení DSA o digitálních službách a upravuje třeba pravidla pro on-line tržiště nebo sociální sítě a má i víc chránit děti.

    Ladislav Hagara | Komentářů: 33
    včera 09:33 | IT novinky

    Meta převezme sociální síť pro umělou inteligenci (AI) Moltbook. Tvůrci Moltbooku – Matt Schlicht a Ben Parr – se díky dohodě stanou součástí Meta Superintelligence Labs (MSL). Meta MSL založila s cílem sjednotit své aktivity na poli AI a vyvinout takovou umělou inteligenci, která překoná lidské schopnosti v mnoha oblastech. Fungovat by měla ne jako centralizovaný nástroj, ale jako osobní asistent pro každého uživatele.

    Ladislav Hagara | Komentářů: 0
    včera 00:22 | Nová verze

    Byla vydána betaverze Fedora Linuxu 44 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 14. dubna.

    Ladislav Hagara | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (16%)
     (7%)
     (0%)
     (11%)
     (29%)
     (2%)
     (5%)
     (2%)
     (12%)
     (25%)
    Celkem 1058 hlasů
     Komentářů: 26, poslední dnes 08:56
    Rozcestník

    Administrace komentářů

    Jste na stránce určené pro řešení chyb a problémů týkajících se diskusí a komentářů. Můžete zde našim administrátorům reportovat špatně zařazenou či duplicitní diskusi, vulgární či osočující příspěvek a podobně. Děkujeme vám za vaši pomoc, více očí více vidí, společně můžeme udržet vysokou kvalitu AbcLinuxu.cz.

    Příspěvek
    17.6.2009 13:10 Tomáš
    Rozbalit Rozbalit vše Re: C++ vs Objective C

    Vícenásobná dědičnost z C++ je v jistém smyslu ekvivalent pro ObjC protocol. Problém je ve vícenásobné dědičnosti a je znám pod jménem diamantový problém en.wikipedia.org/wiki/Diamond_problem. V objektovém programování má potomek schopnost hrát roli předka. V obrázku na odkazu ve wikipedii třída D nemůže plnohodnotně roli C protože přepsané metody z A se budou vyhledávat ve třídě B nikoliv v C. V C++ je problém ještě složitější, protože veřejné attributy  jsou identifikovány jako relativní pointer vůdči počátku třídy a metody jsou pak indentifikovány jako číselný index do tabulky virtuálních metod (VMT). Při vícenásobné dědičnosti dochází ke konfliktům mezi těmito offsetty resp. indexy. Vícenásobná dědičnost prostě přináší spoustu problémů. Řešením problému pro attributy je zákázání vícenásobné dědičnosti. Řešením problému pro metody je opuštění identifikace metod pomocí číselných indexů ve VMT a nahrazením celé VMT hash tabulkou s klíčem typu string [jméno metody + typový seznam parametrů]. Tento klíč se jmenuje selector. Takovýto přístup Vám dá úplnou volnost pro dědění, ale jen pro metody. Dokonce můžete v ObjC implementovat metodu se stejným selektorem nezávisle ve dvou různých objektech a tyto objekty se pak budou chovat jako potomci jednoho (virtuálního) objektu, ze kterého dědí tuto metodu. Koncept protokolů v ObjC je pak jen pomocnou berličkou nad tímto mechanismem selektorů ( protokol = sada selektorů/metod ). Řešení se selektory přináší zase jiné problémy. Např. jak řešit kolize stejných selektorů pocházejících z různých protokolů a další.

    Nyní se můžeme vrátit k Vaší otázce.

    • Na úrovni method vícenásobnou dědičnost v ObjC uděláte pomocí prosté implementace method. Nebo aby jste si ušetřil práci uděláte tvz method forwarding en.wikipedia.org/wiki/Objective-C#Forwarding. (Java forwarding neumí - musíte pro každou metodu protokolu forward implementovat) V metodě forward budte pak explicitně řešit problém vícenásobné dědičnosti, kdy budete hledat kterému z přímých předků zprávu poslat. Na úrovni public/protected attributů to v ObjC nejde. BTW public attributy se příliš neslučují s principy OOP.
    • Protocol implementovaný v C++ by byla abstraktní třída bez jakýchkoli attributů. A tato třída by ve všech potomcích musela být děděna jako virtual aby se vám ve VMT objevovala jen jednou. ( class A : public virtual Protocol : public virtual Protocol ... versus class A : public Protocol : public Protocol ... )www.cprogramming.com/tutorial/virtual_inheritance.html

     

    V tomto formuláři můžete formulovat svou stížnost ohledně příspěvku. Nejprve vyberte typ akce, kterou navrhujete provést s diskusí či příspěvkem. Potom do textového pole napište důvody, proč by měli admini provést vaši žádost, problém nemusí být patrný na první pohled. Odkaz na příspěvek bude přidán automaticky.

    Vaše jméno
    Váš email
    Typ požadavku
    Slovní popis
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.