gpt4 book ai didi

C++成员函数模板以成员函数指针作为模板参数

转载 作者:行者123 更新时间:2023-11-30 00:44:04 29 4
gpt4 key购买 nike

我有一个类,其中包含一些非常相似的成员函数 f_af_bf_c

class A {
public:
double f_a() {return 1.0;}
double f_b() {return 2.0;}
double f_c() {return 3.0;}

template <double (A::*any_f)()>
double my_f() {
return any_f()
}
}

所以我的问题是,是否可以在不将这些成员函数设为静态的情况下以这种方式使用类。

int main() {
A a;
a.my_f<&A::f_a>();
a.my_f<&A::f_b>();
a.my_f<&A::f_c>();
}

提前致谢!

最佳答案

我想这就是你想要的

class A {
public:
double f_a() {return 1.0;}
double f_b() {return 2.0;}
double f_c() {return 3.0;}

template <double (A::*any_f)()>
double my_f() {
return (this->*any_f)();
}
};

int main() {
A a;
a.my_f<&A::f_a>();
a.my_f<&A::f_b>();
a.my_f<&A::f_c>();
}

关于C++成员函数模板以成员函数指针作为模板参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51105452/

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