Portál AbcLinuxu, 14. července 2025 23:38
p_pristup = Kocka::zobraz;
Kód je následující:
class Kocka { public: Kocka(): hodnota(1) { citac++; } ~Kocka() { citac--; } void zobraz() { std::cout << "hodnota je: " << hodnota << std::endl; } int getvalue() const { return hodnota; } void setvalue(int hodn) { hodnota = hodn; } static int getcounter() { return citac; } private: static int citac; int hodnota; }; int Kocka::citac = 0; int main() { void (Kocka::*p_pristup)(); Kocka* value = new Kocka; std::cout << "citac:" << Kocka::getcounter() << " hodnota:" << value->getvalue() << std::endl; value->setvalue(12); Kocka* a = new Kocka; Kocka* b = new Kocka; std::cout << "citac:" << Kocka::getcounter() << " hodnota:" << value->getvalue() << std::endl; std::cout << "\n\n"; p_pristup = Kocka::zobraz; (value->*p_pristup)(); delete a; delete b; delete value; std::cout << "\ncitac: " << Kocka::getcounter() << std::endl; return 0; }Mohli byste mi prosím poradit. Kompilátor vyhazuje následující chybu
15.cpp:29: error: invalid use of non-static member function ‘void Kocka::zobraz()’, ale nevím proč, když ukazatel vrací stejný typ a nemá taktéž žádné parametry. Díky...
p_pristup = &Kocka::zobraz;možná samo o sobě pojede (nepoužívám to), ale vůbec nechápu smysl podobných orgií
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.