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

在我写主要文章之前

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 ??????????
//...

}

最佳答案

这是一个使用运算符的玩具示例!以及指向它的成员指针,看起来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)

关于c++ - 如何在成员函数中使用指向运算符的指针?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17094543/

10-17 00:23