#include <iostream>
using namespace std;
class Foo
{
public:
void func() { cout << "func!" << endl; }
//void (*pfunc)() = func; // ← できない
//void (&pfunc)() = func; // ← できない
} foo;
void func() { cout << "func!" << endl; }
int main() {
void (*pfunc)() = func; // ← できる
void (&rfunc)() = func; // ← できる
pfunc();
rfunc();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgRm9vCnsKcHVibGljOgoJdm9pZCBmdW5jKCkgeyBjb3V0IDw8ICJmdW5jISIgPDwgZW5kbDsgfQoJLy92b2lkICgqcGZ1bmMpKCkgPSBmdW5jOyAvLyDihpAg44Gn44GN44Gq44GECgkvL3ZvaWQgKCZwZnVuYykoKSA9IGZ1bmM7IC8vIOKGkCDjgafjgY3jgarjgYQKfSBmb287Cgp2b2lkIGZ1bmMoKSB7IGNvdXQgPDwgImZ1bmMhIiA8PCBlbmRsOyB9CgppbnQgbWFpbigpIHsKCXZvaWQgKCpwZnVuYykoKSA9IGZ1bmM7IC8vIOKGkCDjgafjgY3jgosKCXZvaWQgKCZyZnVuYykoKSA9IGZ1bmM7IC8vIOKGkCDjgafjgY3jgosKCXBmdW5jKCk7CglyZnVuYygpOwoJCglyZXR1cm4gMDsKfQ==