编译器:"隐式删除,因为默认定义不正确"

时间:2016-01-22 00:37:15

标签: c++ compiler-errors juce

我已经广泛搜索了一个解决方案,虽然很多人遇到了这个问题,但我似乎无法在响应和我正在做的事情之间建立联系。错。

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

#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)。除了人类可读的部分外,对我来说似乎完全无法解读。

有人可以告诉我发生了什么吗?

由于

0 个答案:

没有答案