Dobrý den,
Hledal jsem informace o mém dnešním dotazu, ale bohužel jsem nezvládl nic najít. Za každou odpověď bych byl tedy moc rád. Zkoušel jsem napsat:
class trida
{
public:
static int funkce(void) const {return x;}
private:
static int x;
};
Ale při pokusu o překlad se zobrazila hláška: "error: static member function cannot have cv-qualifier. Po chvíli přemýšlení nad tím, co znamená cv-qualifier jsem umazal const a překlad se povedl. Tak jsem usoudil, že statická členská funkce nesmí být konstantní.
Moje otázka tedy je:
- Proč nemůže být static členská funkce const?
- Je možné nějak zaručit v deklaraci, že funkce nebude měnit data? Tím myslím že dám vědět, že nemůže měnit žádnou statickou (myslím že jiná by ani nešla) členskou proměnnou. (doufám, že jsem to napsal správně, myslím tím libovolné deklarace static proměnných v třídě)
Díky za každou odpověď.