小编ing*_*ram的帖子

ARM交叉编译,多重继承的分段错误

我有一个使用多重继承和多态的C++应用程序.它在x86_64-linux上正常工作但在arm-linux上我遇到了分段错误.

我写了一个简单的测试来重新创建问题:

#include <list>
#include <iostream>

class SmartObject
{
    public:

    // removing this destructor makes it work in ANY way
    virtual ~SmartObject(){
    }

    void method(void) {}
};

class IMyInterface
{
    public:

    // removing this destructor have no effect (fails)
    virtual ~IMyInterface(){
    }

    virtual std::list<int> getList() = 0;
};

class MyObject :  public SmartObject, public virtual IMyInterface
{
    public:

    MyObject()
    {
        list.push_back(4);
        list.push_back(5);
    }

    virtual std::list<int> getList() {
        return list;
    }

    std::list<int> list;
};

int main()
{
    IMyInterface * ip = …
Run Code Online (Sandbox Code Playgroud)

c++ linux gcc arm multiple-inheritance

5
推荐指数
1
解决办法
406
查看次数

标签 统计

arm ×1

c++ ×1

gcc ×1

linux ×1

multiple-inheritance ×1