如何在成员函数中使用指向运算符的指针?

时间:2013-06-13 18:35:29

标签: c++ operators member-function-pointers

我正在尝试将代码从常规函数更改为“成员函数指针”一切正常但我不知道如何定义指向运算符的指针

在我写的主要之前

typedef int*(tArray_t<int>::*op)(int)const;

然后在主

int main(){
//...
op oper=&tArray_t<int>::operator[];


    cout<<*intArray[2]<<endl;   // how do i change it here ?????????? 
//...

}

2 个答案:

答案 0 :(得分:1)

这是一个使用操作员的玩具示例!和一个指向它的成员指针,看起来像VC ++ 10还可以:

class Test
{
public:
    bool operator !() {return true;};   
};

typedef bool (Test::* memfunptr)();

int main(){

Test tt;
memfunptr mf = &Test::operator!;

bool res = (tt.*mf)();

return 0;
}

所以,尝试一下以下几点:

tArray_t intArray;
(intArray.*insert)(&((intArray.*op)(1)));  

(不确定你的intArray和insert的实际定义是什么,所以我在这里猜测intArray是一个实例而insert是另一个成员ptr)

答案 1 :(得分:0)

    tArray_t<int> intArray;

我已经改变了这个

*intArray[2]

有了它,现在它起作用了,thx :)

(*(intArray.*oper)(2))