等于运算符:指向成员函数的指针

时间:2013-11-15 14:06:07

标签: c++ pointers

在我的一个类中,我包含了一个指向成员函数的指针:

private:
void (class_name::*_pf)(double&, gc::mag::coefficient&, gc::mag::st&, const int&) const;

此指针指向类function1的{​​{1}}或function2

现在,当我有两个类class_name的对象时,如何检查class_name指针是否指向同一个成员函数(也就是说,它们都指向_pf还是function1)?

1 个答案:

答案 0 :(得分:2)

这应该足够了:

if (this->_pf == other._pf)

示例:

#include <iostream>

class class_name
{
  public:
  void function1(int) {}
  void function2(int) {}
};

class test
{
    public:
    test(void (class_name::*pf)(int))
    : _pf(pf)
    {
    }

    bool operator==(const test& other)
    {
        return (this->_pf == other._pf);
    }

  public:
    void (class_name::*_pf)(int);
};

int main()
{
   test t(&class_name::function1);
   test t2(&class_name::function2);

   std::cout << std::boolalpha << (t == t2) << std::endl;

   return 0;
}