Wie kann eine Objektmethode aufgerufen werden, die an eine Variable übergeben wird?Übergeben einer Objektmethode an eine Variable
class A {
public:
inline int f() {
return 1;
}
};
int main() {
A a;
int (A::*y)(); //'y' must be a method of 'A' class that returns 'int'
y = &A::f; //bind 'f' method
*y(); //how to invoke???
}
Die anderen thread gebunden, ein Verfahren zu einem Objektfeld, und es wurde auf diese Weise (a.*(a.x))()
aufgerufen, aber ich kann nicht einen Weg finden, eine ähnliche Sache zu einer einfachen Variablen zu tun.
Es hat funktioniert! Vielen Dank. – Humberd
Wie kann ich den Namen der Funktion bekommen (in diesem Fall wird es 'f'), die an eine Variable' y' übergeben wurde? – Humberd
@Humberd, es gibt keinen portablen oder einfachen Weg ... Das aktuelle Mittel ist über 'std :: type_info', was dir nicht den Namen geben würde, den du dir erhoffst. Wir hoffen, dass einige Reflektionsvorschläge für C++ 20 durchgehen ... :-) – WhiZTiM