【问题标题】:C4430 missing type specifier - int assumed [closed]C4430 缺少类型说明符 - 假定为 int [关闭]
【发布时间】:2017-02-18 03:26:42
【问题描述】:

我正在尝试在 CallOption 和 PutOption 派生类中编写 Put-Call Parity 函数。 我希望这个函数将对象的引用作为参数传递。

这是CallOption.hpp中函数的签名

double PCParity(const PutOption& put_option) const;

PutOption.hpp 中也类似

double PCParity(const CallOption& call_option) const;

当然,我将 CallOption.hpp 包含在 PutOption.hpp 中,并且是相互的。

但我收到以下错误:

  • 标识符“PutOption”未定义。
  • 缺少类型说明符 - 假定为 int。注意 C++ 不支持默认整数。
  • 语法错误:& 前缺少 ','

这是否意味着我不能在编译时同时调用两个派生类?

非常感谢任何帮助。 :(

【问题讨论】:

  • 你可能有一个循环包含路径。
  • 当然,我将 CallOption.hpp 包含在 PutOption.hpp 中,反之亦然。 那是你的错误。
  • 您的问题应该包含minimal reproducible example 试图根据您对您认为自己所做的事情的解释来猜测您做错了什么并不是解决问题的好方法。

标签: c++ pass-by-reference derived-class computational-finance


【解决方案1】:

感谢@drescherjm 的 cmets,当您回复时,我一直在寻找解决问题的方法。正如您所说,我应该使用此处所述的前向声明: What are forward declarations in C++?。 实际上,我应该在PutOption.cpp 中包含CallOption.hpp,对于CallOption 类也是如此。然后,在CallOption.hpp的顶部声明,如下:

Class PutOption;
Class CallOption: public Option
{
}

非常感谢:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-04
    • 2015-05-02
    • 2014-06-10
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多