0

我已经广泛搜索了解决方案,虽然很多人都遇到了这个问题,但我似乎无法将响应与我做错的事情联系起来。

我冒昧地将我的程序提炼成仍然会产生此错误的最简单形式(据我所知):

#ifndef MAINCOMPONENT_H_INCLUDED
#define MAINCOMPONENT_H_INCLUDED

#include "../JuceLibraryCode/JuceHeader.h"

class MyClass : public Timer {
public:
    MyClass () {}
    ~MyClass (void) {}
    void timerCallback () override {}
};

class MainContentComponent  : public Component {
public:
    MainContentComponent () {
        //============ Removing the following line
        //============ makes the error go away
        myClasses.erase(myClasses.begin());
    }

    ~MainContentComponent () {}

private:
    std::vector<MyClass> myClasses;

};

Component* createMainContentComponent() { return new MainContentComponent(); }

#endif  // MAINCOMPONENT_H_INCLUDED

就像我已经指出的那样,删除

myClasses.erase(myClasses.begin());

将使错误消失。如果我从 MyClass (以及它的纯虚函数)中删除 Timer 继承,也会使错误消失。

这是整个错误消息(imgur 链接)。除了人类可读的部分,它对我来说似乎完全无法解读。

谁能告诉我发生了什么?

谢谢

4

0 回答 0