阿白| 2022-08-10 20:02 采纳率: 91.7%
浏览 78
已结题

c++关于函数指针的问题

刚入坑,只会控制台操作

我想用函数指针组成的数组来实现“选择输出”,就是用户从一些信息之中挑几个输出。但在构建函数指针的时候出现了问题,程序无法构建

img

我写的关于函数指针的代码如下(在main中):
通过不断注释构建的方法,出现在中间注释掉的两行(原本想用数组构建,后来发现不行又改用普通变量构建函数指针,但还是无法构建)

typedef void (See::* out)(int);
            //out outArr[9] = { &See::name, &See::sex, &See::age, &See::position, &See::serviceLength, &See::number, &See::salary, &See::lastChangedSalary, &See::allChangedSalary };
            //out outArr = &See::name;
            See* use = new See;
           //(use->*outArr[0])(1);//测试

我的see类如下:

class See {
private:static std::vector<People> arr;
public:
    void getArr(std::vector<People> arr) {
        this->arr = arr;
    }
    void name(int place) {
        std::cout << "姓名:" << arr[place].getName() << '\n';
    }
    void sex(int place) {
        std::cout << "性别:" << arr[place].getSex() << '\n';
    }
    void age(int place) {
        std::cout << "年龄:" << arr[place].getAge() << '\n';
    }
    void position(int place) {
        std::cout << "职位:" << arr[place].getPosition() << '\n';
    }
    void serviceLength(int place) {
        std::cout << "工龄:" << arr[place].getServiceLength() << '\n';
    }
    void number(int place) {
        std::cout << "电话:" << arr[place].getNumber() << '\n';
    }
    void salary(int place) {
        std::cout << "薪资:" << arr[place].getSalary() << '\n';
    }
    void lastChangedSalary(int place) {
        std::vector<People::changedSalary> low = arr[place].getChangedSalary();
        std::cout << "薪资变化:" << low[low.size() - 1].money << '\n';
    }
    void allChangedSalary(int place) {
        std::cout << "该员工全部薪资变化如下:\n时间:\t变化金额:\n";
        std::vector<People::changedSalary> low = arr[place].getChangedSalary();
        for (int i = 0; i < low.size(); i++) {
            std::cout << low[i].time << "\t" << low[i].money << "\n";
        }
    }
};

不知道出现了什么问题

  • 写回答

3条回答 默认 最新

  • 快乐鹦鹉 2022-08-10 20:07
    关注

    编译有报错,把错误信息贴出来看看啊
    你这些getSalary()等get函数都是哪个类的啊???

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月13日
  • 已采纳回答 8月10日
  • 创建了问题 8月10日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么