函数指针数组的问题
#include <iostream>
using namespace std;
template<class T>
class Ctest
{
private:
T m_data;
Ctest<T> *next;
Ctest<T> *head;
int m_size;
public:
void output(Ctest<T> *la);
};
template<class T>
void Ctest<T>::output(Ctest<T> *la)
{
cout<<"output"<<endl;
};
typedef void (Ctest<int>::*FUNC)(Ctest<int> *la);
FUNC m_func[10];
int main()
{
Ctest<int> a;
Ctest<int> *pa=&a;
m_func[0]=&Ctest<int>::output;
(pa->(*(m_func[0])))(pa);
}
请问,这样写为什么报错的
问题点数:30、回复次数:4Top
1 楼steedhorse(晨星)回复于 2006-03-06 11:12:46 得分 25
(pa->(*(m_func[0])))(pa);
改为:
(pa->*(m_func[0]))(pa);Top
2 楼steedhorse(晨星)回复于 2006-03-06 11:14:02 得分 0
从指针或对象上调用成员函数指针的语法是:“->*”成者“.*”。Top
3 楼zzw820626(偶要分,偶要星星)回复于 2006-03-06 11:16:06 得分 0
同意Top
4 楼iGray(i_冲锋陷阵)回复于 2006-03-06 11:28:20 得分 5
:)解释一下楼上的话
通过指向成员函数的指针,来调用成员函数时
通过指向数据成员的指针,来访问数据成员时
语法都是"->*"或者".*"
指向类成员的指针并非指针Top




