CPallini
С тех пор как ваш y1
не имеет доступа ни к одному члену группы. test
затем вы можете изменить его так, чтобы он был static
и писать
#include <iostream>
using namespace std;
const void (*y2)(char i);
class test
{
static const void y1(char i)
{
cout << i << "\n";
}
public:
test();
};
test::test()
{
y2 = &y1;
}
int main()
{
test t;
y2('F');
}
Соответствующий код для обычного (нестатического) метода будет выглядеть следующим образом
#include <iostream>
using namespace std;
class test;
const void (test::*y2)(char i);
class test
{
const void y1(char i)
{
cout << i << "\n";
}
public:
test();
};
test::test()
{
y2 = &test::y1;
}
int main()
{
test t;
(t.*y2)('F');
}
Обратите внимание, что в обоих случаях код, хотя и работает, довольно бессмыслен.