[英]How to call a member function via a pointer which is a class member itself
[英]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.