类中的重载函数调用运算符
Overload Function Call Operator in a Class
在我的教授给我的.h文件中,他写道
double operator()(double x) const;
重载的要点是将 x 读作双精度值,并使用它来计算存储在类对象 Term 中的多项式。 我在类实现中提出的是
double operator()(double x) const
{ double result = 0.0;
for (int i = 0; i < getSize(); i++)
result += (getCoeff(i) * pow(x, getExponent(i)));
return result;
}
如何从应用程序调用它? 我尝试过不同的电话,例如
Polynomial p;
p.operator(x);
或
Polynomial::operator(x);
或
operator(x);
但在编译时总是出现错误。
通常的形式是调用它,就好像你的实例是一个函数一样:
double x = 3.1416;
Polynomial p;
double y = p(x);
或者,您可以显式调用运算符:
double x = 3.1416;
Polynomial p;
double y = p.operator()(x);
下面是一个简化的示例:
#include <iostream>
struct Foo
{
double operator()(double x) const { return x*2; }
};
int main()
{
Foo f;
std::cout << f(2.5) << std::endl;
}
相关文章:
- C++ 如何重载 [] 运算符并进行函数调用
- NOEXCEPT 函数调用运算符的说明符_Not_fn
- 检查类是否具有可能重载的函数调用运算符
- C++函数调用与许多点运算符
- C++ 类的构造函数和函数调用运算符 () 重载之间的歧义
- 重载运算符主体仅包含一个函数调用
- 重载<<运算符的函数调用 (C++)
- 使用赋值运算符将宏转换为函数调用
- 为什么将"<<"运算符作为函数调用会导致"ambiguous call"编译器错误?
- 如何调用运算符函数添加两个对象?
- 将函数调用替换为重载运算符 C++
- 在呼叫运算符函数const中调用运算符时错误
- 为下标运算符和函数调用运算符提供默认参数
- 重载find_if的函数调用运算符()
- 函数调用运算符重载的参数太多
- 类中的重载函数调用运算符
- 调用派生类的函数调用运算符时避免使用指针
- 如何隐式调用函数调用运算符
- 一对函数调用运算符
- 内联和静态函数调用运算符