C 中的controad()括号的语法运算符



我是C 的新手,并获得了此任务。我必须使用此标头文件,从中提供了相关摘录。班级名称为ReadoffasianCall。

PayoffAsianCall(double strike);
virtual double operator()(std::vector<double> & spot) const;
virtual ~PayoffAsianCall(){}

我想将一些内容分配给主文件中的操作员我一直在使用

    PayoffAsianCall &PayoffAsianCall::virtual double operator()(std::vector<double> & spot) const { do stuff here}

但这尚未起作用。有人可以向我解释正确的语法吗?

总是很难为初学者获得一些基础,而C 也不容易驯服。所以这里有一些提示:

我们从您的尝试开始

payoffasiancall&amp; payoffasiancall ::虚拟double operator()(std :: vector&amp; spot)const {在此处做事}

首先:要注意的第一件事是返回类型,您说返回类型是

READOFFASIANCALL&amp;

顺便说一句。您应该真正注意&的位置。在这种情况下,它意味着referenece及其READOFFASIANCALL参考,因此应该是ReadoffasianCall&amp;而不是ReadoffasianCall&amp;。

但是无论如何:在类定义中,您说返回值是 double,因此应为 double

double PayoffasianCall :: Virtual double double operator()(std :: vector&amp; spot)const {在此处做事}

那已经好多了。现在我们需要操作员名称,因为它是类成员,名称包括类名称virtualdouble与名称无关,因此virtual保留在类定义本身中,因此在此处没有空间已经照顾了。所以我们现在有:

double PayoffasianCall :: operator()(std :: vector&amp; spot)const {在这里做事}

这就是全部。如前所述,我建议正确放置&。这不是std ::矢量参考点,而是std ::向量参考点:

double PayoffasianCall :: operator()(std :: vector&amp; spot)const {在这里做事}

完成。

最新更新