我有一个使用多重继承和多态的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)