我已经广泛搜索了解决方案,虽然很多人都遇到了这个问题,但我似乎无法将响应与我做错的事情联系起来。
我冒昧地将我的程序提炼成仍然会产生此错误的最简单形式(据我所知):
#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 链接)。除了人类可读的部分,它对我来说似乎完全无法解读。
谁能告诉我发生了什么?
谢谢