gpt4 book ai didi

允许任意类输入的C++函数

转载 作者:搜寻专家 更新时间:2023-10-31 00:14:40 27 4
gpt4 key购买 nike

现在我有一个类 A,它有一个方法 f:

class A{
public:
double f(double x){return 0.0;};
};

我有另一个类 B 和另一个方法 f:

class B{
public:
double f(double x){return 0.0;};
};

我希望我的函数 myfun 可以接受类 A 或类 B 而不必重载该函数:

double myfun(A a){
return a.f(1.0);
}
double myfun(B b){
return b.f(1.0);
}

我不想重载该函数,因为我将拥有三个或更多具有方法 f() 的不同类。有什么办法吗?

最佳答案

使用一个简单的模板函数:

template<typename T>
double myfun(T t) {
return t.f(1.0);
}

然后你这样调用它:

A a;
myfun(a);

B b;
myfun(b);

关于允许任意类输入的C++函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22311744/

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