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:44 | Komunita

    Společnost Meta (Facebook) předává React, React Native a související projekty jako JSX nadaci React Foundation patřící pod Linux Foundation. Zakládajícími členy React Foundation jsou Amazon, Callstack, Expo, Huawei, Meta, Microsoft, Software Mansion a Vercel.

    Ladislav Hagara | Komentářů: 1
    dnes 01:22 | IT novinky

    Samsung na akci Galaxy Unpacked February 2026 (YouTube) představil své nové telefony Galaxy S26, S26+ a S26 Ultra a sluchátka Galaxy Buds4 a Buds4 Pro. Telefon Galaxy S26 Ultra má nový typ displeje (Privacy Display) chránící obsah na obrazovce před zvědavými pohledy (YouTube).

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

    Byla vydána grafická knihovna Mesa 26.0.1 s podporou API OpenGL 4.6 a Vulkan 1.4. Je to první stabilní verze po 26.0.0, kde se novinky týkají mj. výkonu ray tracingu na GPU AMD a HoneyKrisp, implementace API Vulkan pro macOS.

    |🇵🇸 | Komentářů: 0
    včera 20:22 | Nová verze

    Byla vydána nová verze 4.6 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Využíván je Free Pascal Compiler (FPC) 3.2.2.

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

    Byla vydána nová verze 3.23.0 FreeRDP, tj. svobodné implementace protokolu RDP (Remote Desktop Protocol). Opravuje 11 bezpečnostních chyb.

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

    Španělský softwarový inženýr oznámil, že se mu podařilo na dálku ovládat sedm tisíc robotických vysavačů po celém světě. Upozornil tak na slabé kybernetické zabezpečení těchto technologií a jejich možné a snadné zneužití. Nesnažil se hacknout všechny robotické vysavače po světě, ale pouze propojil svůj nový DJI Romo vysavač se zařízením Playstation. Aplikace podle něj ihned začala komunikovat se všemi sedmi tisíci spotřebiči a on je

    … více »
    Ladislav Hagara | Komentářů: 6
    včera 03:33 | Humor

    Momo je fenka cavapoo, která svými náhodnými stisky kláves bezdrátové klávesnice vytváří jednoduché počítačové hry. Technicky to funguje tak, že Raspberry Pi s připojenou bluetooth klávesnicí posílá text do Claude Code, který pak v Godotu píše hry a sám je i testuje pomocí screenshotů a jednoduchých simulovaných vstupů. Za stisky kláves je Momo automaticky odměňována pamlsky. Klíčový je pro projekt prompt, který instruuje AI, aby i

    … více »
    NUKE GAZA! 🎆 | Komentářů: 24
    včera 02:22 | Nová verze

    GNU awk (gawk), implementace specializovaného programovacího jazyka pro zpracování textu, byl vydán ve verzi 5.4.0. Jedná se o větší vydání po více než dvou letech. Mezi četnými změnami figuruje např. MinRX nově jako výchozí implementace pro regulární výrazy.

    |🇵🇸 | Komentářů: 0
    24.2. 16:22 | IT novinky

    Internetový prohlížeč Ladybird ohlásil tranzici z programovacího jazyka C++ do Rustu. Přechod bude probíhat postupně a nové komponenty budou dočasně koexistovat se stávajícím C++ kódem. Pro urychlení práce bude použita umělá inteligence, při portování první komponenty prohlížeče, JavaScriptového enginu LibJS, bylo během dvou týdnů pomocí nástrojů Claude Code a Codex vygenerováno kolem 25 000 řádků kódu. Nejedná se o čistě autonomní vývoj pomocí agentů.

    NUKE GAZA! 🎆 | Komentářů: 7
    24.2. 15:55 | Nová verze

    Byl vydán Mozilla Firefox 148.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Nově lze snadno povolit nebo zakázat jednotlivé AI funkce. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 148 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (18%)
     (6%)
     (0%)
     (11%)
     (27%)
     (2%)
     (5%)
     (2%)
     (12%)
     (26%)
    Celkem 959 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: Statická inicializace pole struktur v C++

    10.2.2023 09:53 pou | skóre: 18
    Statická inicializace pole struktur v C++
    Přečteno: 919×
    Dobrý den,

    Dejme tomu že mám tuto třídu v C++

    class TEST{
    
    public:
      TEST();
       typedef struct {
            int a;
       }ITEM;
    
    const ITEM items[];
    
    };
    
    Nyní bych chtěl v konstruktoru třídy TEST() naplnit pole items. Plánuji potom zdědit tuto třídu (TEST) a každý potomek si vytvoří svoje pole items.

    Jak na to? Použití std::vector nebo array atd není možné (embeddded).

    Jediná pro mě zatím funkční varianta je mít takovýto konstruktor:
    TEST(){
        ITEM asfafafsfff[]={
            {4},{5}
        };
        itms=asfafafsfff;
    }
    
    Ale vůbec se mi to nelíbí. Navíc items nemůže být const a busí být definován jako ITEM * items.

    Odpovědi

    10.2.2023 09:57 X
    Rozbalit Rozbalit vše Re: Statická inicializace pole struktur v C++
    Domaci ukol?
    10.2.2023 21:53 pou | skóre: 18
    Rozbalit Rozbalit vše Re: Statická inicializace pole struktur v C++
    Ne, ale díky za odpověď
    10.2.2023 16:07 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Statická inicializace pole struktur v C++

    To je jakýsi podivný mix C++ (class), C (typedef struct) a kdoví, možná i Javy (items[]), ale nejspíš to má být „nekonečné“ pole na konci C99 struktury, které ovšem není ani vzdáleně kompatibilní s C++ (bez přetěžování new a delete), protože samo od sebe není jasné, jak tam mají fungovat konstruktory a destruktory…

    Použití std::vector nebo array atd není možné (embeddded).

    V jakém slova smyslu to není možné? To ten embedded systém nemá alokátor paměti? std::array bude fungovat bez dynamické alokace, přesně k takovému použití je určené…

    Kdo / co určuje velikost pole items? Je k tomu přetížený operátor new a delete? Jak vypadá?

    Ten každý potomek má být ve skutečnosti každá podtřída nebo každá instance? Nebylo by v prvním případě lepší mít to pole statické? (Ať tak nebo tak, asi by mělo být protected a/nebo const.)

    #include <array>
    #include <cstdint>
    #include <utility>
    
    namespace {
    
    template <std::size_t Size>
    struct Test1 {
      struct Item {
        int a;
      };
    
      template <typename... ALike>
      Test1(ALike&&... as) : items_{{.a = std::forward<ALike>(as)}...} {
        static_assert(sizeof...(as) <= Size);
      }
    
     protected:
      const Item items_[Size];
    };
    
    template <std::size_t Size>
    struct Test2 {
      struct Item {
        int a;
      };
    
      template <typename... ALike>
      Test2(ALike&&... as) : items_{Item{.a = std::forward<ALike>(as)}...} {
        static_assert(sizeof...(as) <= Size);
      }
    
     protected:
      const std::array<Item, Size> items_;
    };
    
    }  // namespace
    
    int main() {
      Test1<6> t{1, 2, 3, 4, 5};
      Test2<5>{1, 2, 3, 4};
    }
    
    10.2.2023 22:02 pou | skóre: 18
    Rozbalit Rozbalit vše Re: Statická inicializace pole struktur v C++
    Dobrý den, díky za odpověď.

    Máte pravdu std::array použít můžu - kompilátor to zkompiluje.

    Asi jsem to použil nešťastně (mix C/C++) - proto se rád nechám poučit.

    Nejlépe asi napsat čeho chci dosáhnout:

    Snažím se vytvořit třídu, která na displej vykresluje menu. Položky v menu budou právě v tom seznamu - tedy každá podtřída bude mít svůj set položek. Instance dané podtřídy již seznam měnit nebude (může tedy být konstantní).

    No a celá moje snaha je, aby to bylo přehledně napsané (tedy v konstruktoru jednodušše naplním toto pole) a nejlépe konstantní tak aby se vše uložilo do paměti programu a ne do RAM paměti (položky totiž budou obsahovat text ale i obrázky-ikony).

    Díky
    15.2.2023 14:01 luky
    Rozbalit Rozbalit vše Re: Statická inicializace pole struktur v C++
    To nejde, protoze vnorene pole ve strukturalnim typu musi mit v C++ znamou velikost v dobe prekladu. Musite zadat velikost nebo pouzit ukazatel a pole mit jinde.

    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.