Portál AbcLinuxu, 9. listopadu 2025 02:04
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.