【问题标题】:Multiple inheritance: I keep geting compile errors多重继承:我不断收到编译错误
【发布时间】:2012-03-13 10:23:00
【问题描述】:

我有一个基类,它继承了一个具有空构造函数的类,然后我有另一个类继承了一个具有空构造函数的类,但我也希望这个类继承我的基类,但我不断收到错误,我的代码如下

BmvMessage - 基类 BmvMessage 继承 - DboGenBmvMessage BmvMessageStructure 继承 - DboGenBmvMessageStruture 我也想让BmvMessageStructure继承BmvMessage

HPP
    class BmvMessage : public DboGenBmvMessage
        {
    // code
    };

HPP OF CLASS THAT I WANT TO INHERIT WITH
class BmvMessageStructure : public DboGenBmvMessageStructure , public BmvMessage
{
//CODE
};

CPP OF THIS CLASS 
    BmvMessageStructure::BmvMessageStructure() : DboGenBmvMessageStructure(), BmvMessage()
    {
    }

【问题讨论】:

  • 你的编译器给出了什么错误?
  • { 标记 @Moo-Juice 之前的预期类名
  • 你在#includeing 所有必要的 hpp 文件吗?
  • 该代码的唯一问题是在类定义之后缺少;,以及缺少DboGenBmvMessageDboGenBmvMessageStructure 的定义。你得到什么错误?
  • @MikeSeymour 我不需要类定义之后的;,因为它们不在同一个文件中,我只是把它们放在那里,错误是 "Epected class-name before {令牌”

标签: c++ multiple-inheritance


【解决方案1】:

没有错误信息很难找出问题所在。首先想到的是,您的类定义中是否有终止 ;

class BmvMessage : public DboGenBmvMessage
    {
// code
}; // <-

否则可能是声明顺序问题 - 您#include-ing 您的基类的顺序是否正确,它们是否正确定义?

【讨论】:

  • 啊,我想是因为我忘记在BmvMessageStrucute 中包含BmvMessage
【解决方案2】:

您确定在继承之前已包含所有必需的标头吗?发生错误的行会很好。

【讨论】:

  • 错误是 "Epected class-name before { token" @PawelZubrycki 但我认为这是因为我没有 #include BmvMessage
猜你喜欢
  • 1970-01-01
  • 2020-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-10
相关资源
最近更新 更多