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í
×
    28.8. 08:11 | Komunita

    Firma X zaslala předžalobní výzvu vývojáři projektu Nitter (Wikipedia), open-source alternativního frontendu k sociální síti X (ex-Twitter), a provozovatelům instancí jako XCancel, které umožňovaly číst příspěvky bez přihlášení, reklam a javascriptu. Údajně se dopouštějí „sběru dat“. Zdrojový kód Nitteru vývojář archivoval. Vývoj již dříve přerušil v roce 2024 po tehdejším omezení API X. X je dceřiná společnost SpaceXAI Elona Muska, provozující mj. kontroverzního chatbota Grok.

    |🇵🇸 | Komentářů: 18
    28.8. 02:22 | Nová verze

    Bylo vydáno Ubuntu 26.04.1 LTS, tj. první opravné vydání Ubuntu 26.04 LTS s kódovým názvem Resolute Raccoon. Přehled novinek a oprav na Discourse.

    Ladislav Hagara | Komentářů: 2
    28.8. 02:11 | Zajímavý článek

    Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal Zprávu o stavu kybernetické bezpečnosti ČR za rok 2025 (pdf). Incidentů ubylo, sofistikovanost útočníků roste.

    Ladislav Hagara | Komentářů: 0
    28.8. 00:55 | Nová verze

    Open source softwarový stack AMD ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán v nové major verzi 10.0. S ROCm.AI. Přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    27.8. 22:11 | Bezpečnostní upozornění

    Finanční skupina Partners se stala minulou neděli obětí kybernetického útoku, při kterém se útočníci dostali k některým osobním údajům klientů. Společnost o tom informovala ve čtvrtek. Ujišťuje, že peníze klientů nejsou v ohrožení. „Kybernetický útok zasáhl část IT infrastruktury naší společnosti. Ihned po zjištění útoku jsme s pomocí externích bezpečnostních odborníků začali intenzivně pracovat na minimalizaci škod. Útočníci se

    … více »
    Ladislav Hagara | Komentářů: 1
    27.8. 03:55 | IT novinky

    Americká technologická společnost Meta Platforms se dohodla, že zaplatí až zhruba 18 miliard dolarů (asi 373 miliard Kč) za mimosoudní urovnání sporu o závislosti dětí na sociálních sítích a provede významné změny pro jejich používání mladistvými. Téměř tři desítky států USA firmu v roce 2023 obvinily z toho, že sítě Facebook a Instagram vědomě navrhla tak, aby u dětí vyvolávaly závislost, a zatajovala tyto dopady před veřejností. Firma se

    … více »
    Ladislav Hagara | Komentářů: 3
    27.8. 02:55 | Komunita

    Byl publikován aktuální přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Blíží se vydání podporující čipy M3. Vývojáře lze podpořit na GitHub Sponsors a Open Collective.

    Ladislav Hagara | Komentářů: 0
    26.8. 16:55 | Nová verze

    Kancelářský balík LibreOffice byl vydán ve verzi 26.8. Mimo jiné vylepšuje typografii a kompatibilitu s formáty MS Office, více v poznámkách k vydání.

    |🇵🇸 | Komentářů: 0
    26.8. 14:55 | Nová verze

    Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 26.8. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 7
    26.8. 11:44 | Nová verze

    Byla vydána nová verze 23.1.0, tj. první stabilní verze z nové řady 23.1.x, překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, LLD, Extra Clang Tools, Libc++, Polly a Flang.

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

    Dotaz: C++, inicializace pole

    16.3.2006 19:30 Michal K.
    C++, inicializace pole
    Přečteno: 1732×
    Dobry den.

    Potrebuji inicializovat pole v c++ a to touto kontrukci: int pole[]={1,2,3,4,5};

    Problem je v tom, ze ono pole je private atribut jedne tridy (o jeho inicializaci se snazim prave v jejim konstruktoru) a g++ mi vyhazuje tuto chybu: expected primary-expression before ']' token

    Nevite nekdo co s tim? Potrebuju inicializovat pole takto, ne clen po clenu (pole[0]=0;pole[1]=1,...).

    Dekuji.

    Odpovědi

    Luboš Doležel (Doli) avatar 16.3.2006 19:38 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: C++, inicializace pole
    1. Musíte určit velikost pole.
    2. {...} do konstruktoru asi nenacpete.
    Luboš Doležel (Doli) avatar 16.3.2006 19:39 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: C++, inicializace pole
    Navrhoval bych v konstruktoru udělat třeba tohle:
    const int pole[5] = {1,2,3,4,5};
    memcpy(m_pole,pole,sizeof(pole));
    16.3.2006 20:37 jekub | skóre: 9 | blog: noblog
    Rozbalit Rozbalit vše Re: C++, inicializace pole
    class X {
       int *m_pole;
       int m_size;
    public:
       X() {
          static int pole[] = {1, 2, 3, 4, 5};
          m_pole = pole;
          m_size = sizeof pole / sizeof pole[0];
       }
       .
       .
       .
    };
    
    Luboš Doležel (Doli) avatar 16.3.2006 20:42 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: C++, inicializace pole
    Otázka je, jaký smysl má pak m_pole. Když už staticky, tak je čistší udělat tohle:

    Header:
    class X
    {
       static int m_pole[];
    };
    
    Cpp:
    int X::m_pole[] = { ... };
    16.3.2006 20:49 jekub | skóre: 9 | blog: noblog
    Rozbalit Rozbalit vše Re: C++, inicializace pole
    Jo, máte pravdu. Ale mám dojem, že když jsem naposled tohle zkoušel, tak to v (MSVC) nefungovalo a nějak jsem si to zafixoval. Dík za upozornění.
    16.3.2006 20:43 jekub | skóre: 9 | blog: noblog
    Rozbalit Rozbalit vše Re: C++, inicializace pole
    Ale pokud má být pole konstantní (dovedu si představit i případ, kdy ne), tak raději
    class X {
       const int *m_pole;
       int m_size;
    public:
       X() {
          static const int pole[] = {1, 2, 3, 4, 5};
          m_pole = pole;
          m_size = sizeof pole / sizeof pole[0];
       }
       .
       .
       .
    };
    
    Luboš Doležel (Doli) avatar 16.3.2006 20:48 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: C++, inicializace pole
    Tak to je ještě větší hnus. Když už máte konstatní pole, tak je strašně neefektivní kvůli němu zakládat dvě proměnné v teoreticky nekonstatních objektech (instancích třídy X).
    16.3.2006 20:51 jekub | skóre: 9 | blog: noblog
    Rozbalit Rozbalit vše Re: C++, inicializace pole
    Souhlas, viz výše.
    16.3.2006 20:57 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: C++, inicializace pole
    Prvkem třídy nemůže být objekt s proměnnou velikostí. Takže pokud by to pole mělo mít různou velikost pro různé instance třídy, bylo by potřeba ho alokovat dynamicky a vzniká otázka, jak potom udělat konstruktor (může být třeba konstruktor variadická funkce?). Stylově čistší by ale asi bylo místo pole použít std::vector<int>, pak by se nejspíš něco vymyslet dalo.
    16.3.2006 21:05 Sinuhet | skóre: 31
    Rozbalit Rozbalit vše Re: C++, inicializace pole
    Prvkem třídy nemůže být objekt s proměnnou velikostí. Takže pokud by to pole mělo mít různou velikost pro různé instance třídy, bylo by potřeba ho alokovat dynamicky ...
    Nebo, pokud zname velikost pole v dobe kompilace, stvorit sablonu.
    ... a vzniká otázka, jak potom udělat konstruktor (může být třeba konstruktor variadická funkce?).
    Ano muze.
    16.3.2006 21:37 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: C++, inicializace pole
    Prostě by to chtělo vědět spoustu dodatečných informací - jestli je obsah nebo aspoň velikost toho pole univerzální pro všechny instance, jestli je velikost známa už při kompilaci nebo až za běhu, a k čemu to vlastně má sloužit. Ono je totiž docela dobře možné, že kdybychom tyto informace měli, našlo by se daleko elegantnější řešení založené na něčem úplně jiném.

    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.