簡體   English   中英

如何為類成員函數調用函數指針

[英]How to call function pointer for class member function

我試圖實現一個調用類成員的函數指針。 我已經實現了示例並成功分配了函數指針。 但是,如果我嘗試調用函數指針,則會引發錯誤。 請參考下面我實施的示例代碼並在這方面幫助我。

#include <iostream>

using namespace std;

class myfunpoin
{
  public:

    int addd(int a,int b)
   {
      return a + b;
   }

    int sub(int a, int b)
    {
      return a - b;
    }

};

int main()
{
    myfunpoin a;
    int (myfunpoin::*myval)(int, int);
    myval =&myfunpoin::addd;
    myval(1, 2);//i want to invoke this function pointer but getting error
    getchar();
    return 0;
}
myval(1, 2);

這行不通,因為您沒有傳遞隱式實例參數。

指向成員函數的指針就像成員函數一樣被調用,除了函數名之外,還有間接運算符和指向成員函數的指針。 例子:

(a.*myval)(1, 2);

需要括號是因為函數調用運算符具有更高的優先級,否則表達式將具有錯誤的含義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM