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 04:00 | Nová verze

    raylib (Wikipedie), tj. multiplatformní open-source knihovna pro vývoj grafických aplikací a her, byla vydána ve verzi 6.0.

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

    Nové verze AI modelů. Společnost OpenAI představila GPT‑5.5. Společnost DeepSeek představila DeepSeek V4.

    Ladislav Hagara | Komentářů: 0
    včera 15:33 | Zajímavý článek

    Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 164 (pdf) a Hello World 29 (pdf).

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | Komunita

    Bylo oznámeno, že webový prohlížeč Opera GX zaměřený na hráče počítačových her je už také na Flathubu and Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    23.4. 23:11 | IT novinky

    Akcionáři americké mediální společnosti Warner Bros. Discovery dnes schválili převzetí firmy konkurentem Paramount Skydance za zhruba 110 miliard dolarů (téměř 2,3 bilionu Kč). Firmy se na spojení dohodly v únoru. O část společnosti Warner Bros. Discovery dříve usilovala rovněž streamovací platforma Netflix, se svou nabídkou však neuspěla. Transakci ještě budou schvalovat regulační orgány, a to nejen ve Spojených státech, ale také

    … více »
    Ladislav Hagara | Komentářů: 0
    23.4. 22:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 26.04 LTS Resolute Raccoon. Přehled novinek v poznámkách k vydání. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 11. vydání s dlouhodobou podporou (LTS).

    Ladislav Hagara | Komentářů: 2
    23.4. 11:55 | Nová verze

    V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Gitea (Wikipedie) byla vydána v nové verzi 1.26.0. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    23.4. 04:44 | Pozvánky

    Ve středu 29. dubna 2026 se v pražské kanceláři SUSE v Karlíně uskuteční 7. Mobile Linux Hackday, komunitní setkání zaměřené na Linux na mobilních zařízeních, kernelový vývoj i uživatelský prostor. Akce proběhne od 10:00 do večerních hodin. Hackday je určen všem zájemcům o praktickou práci s Linuxem na telefonech. Zaměří se na vývoj aplikací v userspace, například bankovní aplikace, zpracování obrazu z kamery nebo práci s NFC, i na úpravy

    … více »
    lkocman | Komentářů: 1
    22.4. 21:55 | Nová verze

    LilyPond (Wikipedie) , tj. multiplatformní svobodný software určený pro sazbu notových zápisů, byl vydán ve verzi 2.26.0. Přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    22.4. 20:33 | Nová verze

    Byla vydána nová verze 11.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 237 vývojářů. Provedeno bylo více než 2 500 commitů. Přehled úprav a nových vlastností v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (2%)
     (13%)
     (31%)
     (3%)
     (6%)
     (2%)
     (15%)
     (25%)
    Celkem 1413 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    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: 2080×
    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.