0
그게 내가하려는거야 : 나는 함수 포인터입니다 클래스 (부탁) 클래스 오순절 있습니다. 생성자에서 나는 같은 클래스의 일부 메소드를 포인터에 할당하고 (일부 조건에 따라 다름) 다른 메소드에서 사용하려고합니다. 예를 들면 : 나는 CodeBlocks에서이 코드를 컴파일 할 때C++ : 동일한 클래스의 function-pointer-member (atribute)에 메서드를 매핑 할 수 있습니까?
class monton
{
private:
protected:
bool (*comparador)(int a, int b);
inline bool mayor(int a, int b) {return a > b;}
inline bool menor(int a, int b) {return a < b;}
...
public:
monton (bool maximo = true)
{
if(maximo) comparador = mayor;
else comparador = menor;
}
...
};
,이 오류가 발생합니다 :
error: cannot convert ‘monton::mayor’ from type ‘bool (monton::)(int, int)’ to type ‘bool (*)(int, int)’|
고마워요. 나는 또한 asigned 후 내 함수 포인터를 사용하는 데 문제가있었습니다. 그러나 나는이 sintax와 함께 사용할 수있는 것을 발견했다 : '(this -> * comparador) (x, y)' –
그리고 나는이 sintax 포인터를 부름시켜야했다 : 'comparador = & monton :: mayor;' 그것이 정확하고 적합한 지 궁금하거나 미래의 문제를 만들고 있습니다. 고마워. –
이러한 함수의 특성 (어떤 식 으로든 클래스 인스턴스에 종속되지 않음)을 감안할 때 더 나은 대안은 정적으로 만드는 것입니다. 그런 다음 함수 포인터에 할당 할 수 있습니다. –