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 03:33 | Nová verze

    Open-source hra Shattered Pixel Dungeon (Wikipedie) byla vydána ve verzi 4.0.0. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 22:22 | IT novinky Ladislav Hagara | Komentářů: 2
    včera 17:44 | IT novinky

    Společnost System76 představila pracovní stanici Thelio Mira AI s předinstalovaným Pop!_OS s prostředím COSMIC nebo Ubuntu. Nakonfigurovat lze až s 16jádrovým CPU AMD Ryzen 9 9950X, 192 GB DDR5 RAM, dvěma GPU NVIDIA RTX Pro 6000 a 192 GB GPU pamětí.

    Ladislav Hagara | Komentářů: 2
    včera 17:00 | Komunita

    DigitalOcean je sponzorem nadace Omacom Foundation stojící za linuxovou distribucí Omarchy. Přislíbená částka je 3 miliony dolarů, tj. 1 milion dolarů ročně po dobu tří let.

    Ladislav Hagara | Komentářů: 2
    8.9. 21:11 | Zajímavý software

    Na stránkách PostgreSQL bylo představeno LibreDB Studio. Jedná se o open-source self-hostované SQL IDE pro (nejenom) PostgreSQL v prohlížeči. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 3
    8.9. 16:00 | Nová verze

    Byla vydána nová verze 12.0 media serveru Jellyfin (Wikipedie). Přehled novinek v poznámkách k vydání. Pro vyzkoušení je k dispozici Demo Server. Jellyfin je fork media serveru Emby, původně Media Browser.

    Ladislav Hagara | Komentářů: 0
    8.9. 04:44 | Bezpečnostní upozornění

    V MikroTik RouterOS bylo nalezeno šest zranitelností společně pojmenovaných MikroTrick umožňujících útočníkovi, pokud má přístup k SSH, získat plnou kontrolu nad zařízením bez nutnosti autentizace. Ve verzích RouterOS 7.25beta3, 7.24.2, 7.23.4 a 6.49.21 je již opraveno.

    Ladislav Hagara | Komentářů: 8
    8.9. 04:00 | Nová verze

    Byla vydána verze 9.5 open source unixového operačního systému NetBSD (Wikipedie). Přehled novinek v poznámkách k vydání. Jedná se poslední vydání řady NetBSD 9. Doporučen je přechod na NetBSD 11 nebo NetBSD 10.

    Ladislav Hagara | Komentářů: 0
    7.9. 21:44 | IT novinky

    Akční adventura State of Mind je na portále GOG.com zdarma, akce trvá do 10. září.

    ʚĭɞ 🍉 | Komentářů: 2
    7.9. 13:22 | IT novinky

    Na Kickstarteru běží kampaň na podporu malého robotický psa Petoi Quaddle. Postaven je na ESP32-S3. V několika variantách. S řadou senzorů. Programovat lze pomocí Pythonu, C++ nebo i vizuálních bloků. Zkoušet a trénovat lze v simulátoru.

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (4%)
     (21%)
     (29%)
     (7%)
     (6%)
     (2%)
     (14%)
     (21%)
    Celkem 2630 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: rucni volani konstruktoru a destruktoru v C++

    30.11.2006 16:22 dylan hunt
    rucni volani konstruktoru a destruktoru v C++
    Přečteno: 2236×
    Ahoj.

    Mam v C++ takovouto tridu:
    class A {
    public:
            A() { ... }
            ~A() { ... }
            ...
    };
    
    Z urcityho duvodu (interakce s knihovnou v C) ale nemuzu jeji instanci vytvorit pomoci new, ale pamet musim alokovat pres malloc. Je mozne potom nejak zavolat konstruktor a destruktor ?
    A *a = (A *) malloc(sizeof(A));
    // nejak zavolat konstruktor na *a
    ...
    // nejak zavolat destruktor na *a
    free(a)
    
    Chtel bych navic zabranit volani kopirovaciho konstruktoru nebo operatoru prirazeni. Jo a navic nemuzu tride A pridat zadnou metodu...

    Je neco takovyho vubec mozny ???

    Diky.

    Odpovědi

    Luboš Doležel (Doli) avatar 30.11.2006 16:24 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: rucni volani konstruktoru a destruktoru v C++
    V Microsoft Visual C++ lze použít __ctor() a __dtor(); také by mě docela zajímalo, jestli něco podobného existuje v GCC.
    30.11.2006 16:30 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: rucni volani konstruktoru a destruktoru v C++
    K tomuto účelu slouží tzv. placement new.
    30.11.2006 16:30 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: rucni volani konstruktoru a destruktoru v C++
    (je to standardní součást jazyka, žádné nestandardní rozšíření)
    30.11.2006 16:32 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: rucni volani konstruktoru a destruktoru v C++
    Druhou možností je přetížení operátorů new a delete.
    30.11.2006 16:50 dylan hunt
    Rozbalit Rozbalit vše Re: rucni volani konstruktoru a destruktoru v C++
    Diky, funguje to :-)

    Vysledna podoba:
    A *a = (A *) malloc(sizeof(A));
    a = new(a) A();
    ...
    a->~A();
    free(a);
    
    30.11.2006 17:17 Luboš Luňák | skóre: 19 | blog: Seli
    Rozbalit Rozbalit vše Re: rucni volani konstruktoru a destruktoru v C++
    Na tu hlavni otazku placement new a rucni volani dtoru, jak uz tu je uvedeno. Na zabraneni volani jakekoliv metody staci ji deklarovat v private: sekci a nikde neimplementovat. Pak budou bud nedostatecna pristupova prava k pouziti nebo to linker nenajde. S tim nepridanim metody jsem to nejspis nepochopil, ale to asi nejde.
    30.11.2006 17:49 dylan hunt
    Rozbalit Rozbalit vše Re: rucni volani konstruktoru a destruktoru v C++
    Asi jsem se spatne vyjadril. S tim nepridanim metody to bylo mysleno tak, ze tridu A nesmim nijak modifikovat. A s tim zabraneni volani tak, ze nechci pouzit treba:
    *a = A();
    
    protoze C++ by zavolalo 'operator =' u neinicializovaneho objektu.

    Problem je uz vyresen, ale diky za snahu.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.