gpt4 book ai didi

c++ - 我可以用 typedef 对类非静态成员方法做什么

转载 作者:行者123 更新时间:2023-11-30 01:51:08 26 4
gpt4 key购买 nike

我刚刚读了cppFaq .并复制/修改/运行以下代码。

#include <iostream>

class Fred {
public:
Fred(): a_(0) {}
Fred(int a): a_(a) {}
int f() { return a_;}
int g() { return 2;}
int h() { return 3;}
private:
int a_;
};


typedef int (Fred::*FredMemFn)();

int main() {
FredMemFn p = &Fred::f;
std::cout << p() << std::endl; // this line added by me, and I know it doesn't work
return 0;
}

在这种情况下,我可以用“p”做什么?

最佳答案

如果你的意思是,你如何使用指针来调用成员函数,那么你将需要一个对象来调用它:

Fred fred(42);
std::cout << (fred.*p)() << std::endl; // prints 42

还有一个 ->* 运算符可以通过指向 Fred 的指针来调用它。

关于c++ - 我可以用 typedef 对类非静态成员方法做什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26509213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com