Byl představen skládací telefon Commodore Callback 8020. Ani hloupý, ani chytrý. Pro fanoušky Commodore a digitálního minimalismu. Bez webového prohlížeče a sociálních sítí. S předinstalovaným WhatsAppem. S operačním systémem Sailfish OS.
V OpenBSD byla objevena 27 let stará chyba v ppp pomocí níž lze vzdáleně obejít autentifikaci. Chyba byla nahlášena 12.6. a 14.6. byla opravena. Bližší info v článku A 27-Year-Old Authentication Bypass in OpenBSD's PPP Stack.
Odpověď Evropské komise (pdf) k evropské občanské iniciativě Stop Destroying Videogames, jež je součástí hnutí Stop Killing Games: "Komise se domnívá, že v této fázi nemůže navrhnout právní povinnost zachovat hratelnost videoher poté, co přestaly být poskytovány komerčně. Důvodem jsou i stávající práva duševního vlastnictví. Podle autorského práva EU mají nositelé práv výlučná práva ke svým výtvorům. Kromě autorských práv mohou být
… více »Byl vydán Mozilla Firefox 152.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 152 bude brzy k dispozici také na Flathubu a Snapcraftu.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.7 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.
Hříčka xsnow, která na ploše spustí sněžení, je protestware. Pokud jste v Rusku (LANG=ru), zobrazuje ukrajinské vlajky.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala beta verzi Ubuntu Touch 24.04-2.0. Nová verze již počítá s výřezy pro fotoaparát (notch) a zaoblenými rohy displeje. Webový prohlížeče Morph přešel z Chromia 87 na Chromium 134. Do shellu Lomiri byl přidán editor snímků obrazovky.
V Praze probíhá Flock 2026, tj. konference pro přispěvatele a příznivce Fedory. Přednášky lze sledovat také na YouTube.
Node-RED (Wikipedie, GitHub), webová aplikace postavená na Node.js pro vizuální programování a propojování hardwarových zařízení, API a online služeb, byl vydán ve verzi 5.0. Přehled novinek v příspěvku na blogu.
Byla vydána nová verze 3.27.0 FreeRDP, tj. svobodné implementace protokolu RDP (Remote Desktop Protocol). Opraveno bylo 5 zranitelností.
#include <iostream>
using namespace std;
class widget {
public: virtual void set_text(){};
};
class button : public widget {
public:
void set_text(){cout << "settext button" < endl;};
};
class label : public widget {
public:
void set_text(){cout < "settext label" < endl;};
};
int main(int argc,char *argv[])
{
widget *arr[2];
arr[0] = (widget *) new button();
arr[1] = (widget *) new label();
arr[0]->set_text();
arr[1]->set_text();
return 0;
}
class A {
public:
virtual void f() { cout << "A" << endl; }
};
class A1 : public A {
public:
virtual void f() { cout << "A1" << endl; }
};
class A2 : public A {
public:
virtual void f() { cout << "A2" << endl; }
};
A* p1 = new A1;
A* p2 = new A2;
p1->f(); p2->f();
vypíše 'A1' a 'A2'. Kdyby ale ty metody nebyly virtuální, vypíše dvakrát 'A'.
class A {
public:
virtual void f();
};
void A::f() { cout << "A" << endl; }
a analogicky i pro ty dvě dceřinné třídy.
2) Kontakt na mna je v linke na moje meno, ale a) nepovazujem sa za experta na c++, a b) nerucim za to ze odpoviem v rozumnej dobe
3) Tento server asi navstevuje vela programatorov, takze mozno dostanes odpovede aj tu, ale nie je to primarnym zameranim tohoto serveru. Mozno by bolo lepsie obratit sa na nejake usenet grupy (napr. comp.lang.c++)
class AbstractObject
{
public:
virtual setText(QString *text) = 0;
}
A pak udělat specializace pro skutečné widgety:
class QButtonWrapper
{
QLabel *m_button;
public:
virtual setText(QString *text) { m_button->setText(text) };
}
(konstruktor a destruktor je zřejmý)
Tak vlastně doděláš to, na co se v návrhu toolkitu zapomnělo.
Pozn. Ty třídy nejdou ani sloučit pomocí vícenásobné dědičnosti, protože mají společného předka. To se dá sice obejít virtuální dědičností, ale opět pokud to neudělal autor toolkitu, ty už s tím nic nenaděláš.
#include <iostream>
using namespace std;
class Otazka {
public:
virtual void ask() { cout << "Obecna Otazka" << endl; }
};
class LinuxovaOtazka: public Otazka {
public:
virtual void ask() { cout << "Tato otazka patri na ABCLinuxu" << endl; }
};
class JinaOtazka: public Otazka {
public:
virtual void ask() { cout << "Tato otazka sem nepatri" << endl; }
};
int main()
{
Otazka* ot = new JinaOtazka;
ot->ask();
return 0;
}
Tiskni
Sdílej: