C++指向类成员函数的指针(3)

接下  是有关模板类的类成员函数指针的使用

实例如下:

#include <tchar.h>
#include <iostream>
#include <stdio.h>
using namespace std;


class A
{
public:
 int func(int x,int y)
 {
  printf("A::func : x=%d,y=%d/n",x,y);
  return (x<y?x:y);
 }
};
class B
{
public:
 int func(int x,int y)
 {
  printf("B::func : x=%d,y=%d/n",x,y);
  return (x>y?x:y);
 }
};

template<class T>
class C
{
public:
 T c;
 void Print()
 {
  int (T::*p)(int,int)=&T::func;
  (c.*p)(4,5);
 }
};

int main()
{
 C<A> ca;
 C<B> cb;

ca.Print();
 cb.Print();
 return 0;
}
从上面 可以很清晰地看到。。其实它和普通的模板没有什么区别。。只不过将限定名称该为参数名酒OK啦。。。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/f7d3973a010b28b29efe7aa545a19cb9.html