Ugrás a tartalomhoz

Wikipédia:Tudakozó/Archívum/2011-07-08

A Wikipédiából, a szabad enciklopédiából

C++-ban metódusfüggvény címét tároló változó: hogy lehet meghívni?

[szerkesztés]
Sajnos nem érezzük illetékesnek magunkat ebben a kérdésben, a Wikipédia Tudakozója csak enciklopédiába, lexikonba való témákkal foglalkozik.
Ha új kérdést akarsz feltenni, kattints ide!
Azt szeretném megtudni, hogy ha C++-ban van egy változó ami egy metódusfüggvény címét tartalmazza akkor azt hogy lehet meghívni? Akárhogy próbálom, sehogy se fogadja el. Példa:
#include <stdio.h>

class c {
public:
 void func() {
  printf("c::func\n");
 }
};

void (__thiscall c::*f)() = &c::func;

c x;

A __thiscall elhagyható, Visual C++ 2010 Express Edition-ben próbáltam meghívni például így:

x.*f();
x.(*f)();
f(&x);
(*f)(&x);

Sajnos sehogy se fogadja el.

--92.249.158.56 (vita) 2011. július 8., 22:44 (CEST)[válasz]

C++ class template-ből másik class template definiálás

[szerkesztés]
Sajnos nem érezzük illetékesnek magunkat ebben a kérdésben, a Wikipédia Tudakozója csak enciklopédiába, lexikonba való témákkal foglalkozik.
Ha új kérdést akarsz feltenni, kattints ide!
Azt szeretném megtudni, hogy C++-ban class template-ből hogy lehet más paraméterezésűt definiálni. Konkrétan: x<a,b> és y<c> template-ek vannak, és létre kellene hozni a z<d> = x<d,y<d> > template-et. Csakhogy template csak class és függvény lehet, typedef nem, akkor se ha lehagyom a typedef szót. Addig rendben hogy template<typename d>, de utána ha kiírom hogy class, akkor minden metódusára külön-külön kell megadnom hogy minek felel meg. Nekem úgy tűnik template-tel nem is lehet ezt megcsinálni, nekem csak #define-nal sikerült.
--92.249.158.56 (vita) 2011. július 8., 22:57 (CEST)[válasz]

Ha van ott még valaki, akkor érdemesebb lenne a Programozás-Wiki vagy a prog.hu társaságának feltenni a kérdést. - Orion 8 vita 2011. július 9., 21:55 (CEST)[válasz]

Egy programozónak illik megtanulni használni az Internetet, mint munkaeszközt. A prog.hu-n is elvárják, hogy próbálkozzon variációkkal és a hivatalos oldalakon nézzen utána a dolgoknak, mielőtt kérdez. --Rodrigó 2011. július 9., 22:42 (CEST)[válasz]