Byla vydána nová stabilní verze 7.6 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 140. Přehled novinek i s náhledy v příspěvku na blogu.
Byla vydána verze 1.90.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
GNUnet (Wikipedie) byl vydán v nové major verzi 0.25.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.
Byla vydána nová major verze 7.0 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Nově je postavena je na Debianu 13 (Trixie) a GNOME 48 (Bengaluru). Další novinky v příslušném seznamu.
Společnost Meta na dvoudenní konferenci Meta Connect 2025 představuje své novinky. První den byly představeny nové AI brýle: Ray-Ban Meta (Gen 2), sportovní Oakley Meta Vanguard a především Meta Ray-Ban Display s integrovaným displejem a EMG náramkem pro ovládání.
Po půl roce vývoje od vydání verze 48 bylo vydáno GNOME 49 s kódovým názvem Brescia (Mastodon). S přehrávačem videí Showtime místo Totemu a prohlížečem dokumentů Papers místo Evince. Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.
Open source softwarový stack ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán ve verzi 7.0.0. Přidána byla podpora AMD Instinct MI355X a MI350X.
Byla vydána nová verze 258 správce systému a služeb systemd (GitHub).
Byla vydána Java 25 / JDK 25. Nových vlastností (JEP - JDK Enhancement Proposal) je 18. Jedná se o LTS verzi.
Věra Pohlová před 26 lety: „Tyhle aféry každého jenom otravují. Já bych všechny ty internety a počítače zakázala“. Jde o odpověď na anketní otázku deníku Metro vydaného 17. září 1999 na téma zneužití údajů o sporožirových účtech klientů České spořitelny.
class Hrac { private: QString * jmeno; QColor * barva; int * znak; int * body; public: Hrac(); Hrac(const Hrac &other); ~Hrac(); void nastavVlastnosti(QString jmeno, QColor barva, int znak, int body); int * zjistiZnak(); int * zjistiBody(); QColor * zjistiBarvu(); QString * zjistiJmeno(); TypHrace * zjistiTyp(); bool checkForVictory(); friend QDataStream &operator<<(QDataStream &out, Hrac &hrac); void serialize(QDataStream& ost); static Hrac unserialize(QDataStream& istr); };
Řešení dotazu:
serialize
a unserialize
, definice třídy se zdá v pořádku
QDataStream& operator <<(QDataStream &out, Hrac &hrac)
nemusí být friend, protože použije (měl by použít ) veřejnou metodu serialize
unserialize
by mělo vracet Hrac*, jinak se tam bude volat (zbytečně) copy konstruktor. Lepší by ale bylo vytvořit deserializační konstruktor explicit Hrac(QDataStream &str)
Btw. proč jsou tam ty dva int
y (znak
a body
) dynamicky alokované?
QDataStream &operator<<(QDataStream &out, Hrac &hrac) { return(out << hrac.jmeno->length()<< " " << hrac.jmeno->toAscii() << " " << hrac.barva << " " << hrac.znak << " " << hrac.body); } void Hrac::serialize(QDataStream &ost) { ost << this; } Hrac Hrac::unserialize(QDataStream &istr) { Hrac tmp; int delkajmena; QString jmeno; QColor barva; int znak; int body; istr >> delkajmena; //istr.readBytes() //? tmp.nastavVlastnosti(jmeno,barva,znak,body); return tmp; }Tu deserializaci udělám pomocí toho kontruktoru, takové řešení mě nenapadlo, díky. Dynamickou alokaci tam používám pro všechny objekty uvnitř tříd, neměl by v tom být žádný rozdíl ne? Kdyby vás zajímal ještě nějaký kus kódu, tak to celé mám na SVN pod http://code.google.com/p/pisqorky/source/browse/trunk#trunk/src .
Dynamickou alokaci tam používám pro všechny objekty uvnitř tříd, neměl by v tom být žádný rozdíl ne?I kdyby to byla pravda, tak proč se v takovym případě namáhat?
void Hrac::serialize(QDataStream &str) { str << *this->jmeno << *this->barva << *this->znak << *this->body; } void Hrac::unserialize(QDataStream &str) { str >> *this->jmeno >> *this->barva >> *this->znak >> *this->body; }resp. s konstruktorem:
Hrac::Hrac(QDataStream &str) : jmeno(new QString()) , barva (new QColor()) , znak (new int(0)) , body (new int(0)) { this->unserialize(str); }a pokud budou potřeba, tak přidat operátory
QDataStream& operator <<(QDataStream &str, Hrac &hrac) { hrac.serialize(str); return str; } QDataStream& operator >>(QDataStream &str, Hrac &hrac) { hrac.unserialize(str); return str; }
Tiskni
Sdílej: