Почему нельзя передать указатель на функцию член?
| Код | //Sample.h
#pragma once class Sample { public: Sample(void); int fun1(int(*fun_x)(int),int x0); int fun2(int x); int fun3(int x); ~Sample(void); };
|
| Код | //Sample.cpp
#include "Sample.h"
Sample::Sample(void) { }
int Sample::fun1(int(*fun_x)(int),int x0) { return fun_x(x0); }
int Sample::fun2(int x) { return x; }
int Sample::fun3(int x) { return fun1(&fun2,x); }
Sample::~Sample(void) { }
|
| Код | Ошибка 1 error C2276: &: недопустимая операция с выражением привязанной функции-члена 2 IntelliSense: аргумент типа "int (Sample::*)(int x)" несовместим с параметром типа "int (*)(int)"
|
|