Portál AbcLinuxu, 14. července 2025 23:38


Dotaz: C++ a začátečnícké problémy

1.10.2007 22:40 radek
C++ a začátečnícké problémy
Přečteno: 347×
Odpovědět | Admin
Snažím se naučit C++. Snažím se pochopit ukazatele na členské fce a nemůžu přijít na jednu chybu řádek 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...
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Luboš Doležel (Doli) avatar 1.10.2007 22:43 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: C++ a začátečnícké problémy
Odpovědět | | Sbalit | Link | Blokovat | Admin
p_pristup = &Kocka::zobraz;
možná samo o sobě pojede (nepoužívám to), ale vůbec nechápu smysl podobných orgií ;-)
1.10.2007 23:10 petris
Rozbalit Rozbalit vše Re: C++ a začátečnícké problémy
& je nepovinné jenom u funkcí, u třídních ukazatelů se musí uvádět.
1.10.2007 23:44 radek
Rozbalit Rozbalit vše Re: C++ a začátečnícké problémy
diky...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.