| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 749 人关注过本帖
标题:如何使用函数指针调用类中的函数和普通函数?
取消只看楼主 加入收藏
w2009w
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:190
专家分:542
注 册:2015-4-20
结帖率:100%
收藏
已结贴  问题点数:40 回复次数:4 
如何使用函数指针调用类中的函数和普通函数?
声明一个参数为int型、返回值为long型的函数指针;声明类A的一个成员函数指针,其参数为int型,返回值为long型。
    麻烦看一看错在哪里:
#include<iostream>
using namespace std;

class A
{
public:
    long Sum(int k);
private:
    int n;
};

A::Sum(int k)   //求自然数的前n项和
    {
        int n;
        cout<<"请输入所求前n项和的n:"<<endl;
        cin>>n;
        k=n;
        long sum=0;
        for(int i=0;i<n;i++)
            sum+=i+1;
        cout<<"前"<<n<<"项和="<<sum<<endl;
        return sum;
    }

long func(int m)  //求自然数n的阶乘
{
    int S=1;
    cout<<"请输入所求阶乘的数m:"<<endl;
    cin>>m;
    for(int j=2;j<m+1;j++)
        S*=j;
    cout<<m<<"!="<<S<<endl;
    return 0;
}

int main(){
    A p_fn2;
    long (* p_fn1)(int);
    long ( A::*p_fn2)(int);
    p_fn1=func;
    p_fn2=Sum;
    return 0;
}
搜索更多相关主题的帖子: public include private 自然数 如何 
2015-06-27 16:48
w2009w
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:190
专家分:542
注 册:2015-4-20
收藏
得分:0 
当然有意思啦,要不然能计算是固定的,不能通用,程序就没啥用途了,不要只说啊,把改后的代码贴上来才是王道。
2015-06-27 19:33
w2009w
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:190
专家分:542
注 册:2015-4-20
收藏
得分:0 
回复 5楼 yangfrancis
明白了,受教了,不错!
2015-06-28 13:19
w2009w
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:190
专家分:542
注 册:2015-4-20
收藏
得分:0 
回复 7楼 yangfrancis
好多错误啊!兄弟!
2015-06-28 14:08
w2009w
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:190
专家分:542
注 册:2015-4-20
收藏
得分:0 
给大家参考一下!哈哈!!!
#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;
}
2015-06-28 14:19
快速回复:如何使用函数指针调用类中的函数和普通函数?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026823 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved