我已经广泛搜索了一个解决方案,虽然很多人遇到了这个问题,但我似乎无法在响应和我正在做的事情之间建立联系。错。
我已经冒昧地将我的程序提炼成最简单的形式,这仍然会产生这个错误(据我所知):
#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继承(以及它的纯虚函数),那么错误会消失的是什么。
这是整个error message (imgur link)。除了人类可读的部分外,对我来说似乎完全无法解读。
有人可以告诉我发生了什么吗?
由于