如何使用函式指標呼叫類中的函式和普通函式

程式碼女民工發表於2021-09-28

宣告一個引數為int型、返回值為long型的函式指標;宣告類A的一個成員函式指標,其引數為int型,返回值為long型。


#include<iostream>
using namespace std;

class A   //定義類A
{
public:
    long Sum(int n)//求自然數的前n項和
        {
        long sum=0;
        for(int i=0;i<n;i++)
            sum+=i+1;
        cout<<"1+2+...+"<<n<<"="<<sum<<endl;
        return sum;
    }
private:
    int n;
};     

long func(int m)  //求自然數m的階乘
{
    long S=1;
    for(int j=2;j<m+1;j++)
        S*=j;
    cout<<m<<"!="<<S<<endl;
    return S;
}

int main(){
    A a;     //定義類A的物件a
    long (* p_fn1)(int);   //定義指向普通函式的指標
    long (A::*p_fn2)(int)=&A::Sum;  //定義指向類成員函式的指標
    p_fn1=func;
    long S=p_fn1(5);
    a.Sum(5);
    (a.*p_fn2)(5);
    return 0;
}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70007056/viewspace-2794163/,如需轉載,請註明出處,否則將追究法律責任。

相關文章