0

コードを通常の関数から「メンバー関数ポインター」に変更しようとしていますが、すべて正常に動作しますが、演算子へのポインターを定義する方法がわかりません

私が書いたメインの前に

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

}
4

2 に答える 2

1

operator を使用したおもちゃの例を次に示します ! およびそれへのメンバーポインターは、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であると推測しています)

于 2013-06-13T21:01:35.073 に答える