错误:无法分配抽象类型的对象' mySynth' VST编程

时间:2012-11-08 22:28:35

标签: c++ vst audioeffect

对于某个项目,我被要求使用VST创建Steinberg SDK,我使用的是2.4版。

我遇到的问题是错误:

cannot allocate an object of abstract type 'mySynth'

尝试编译时,错误将我带到这部分代码:

    AudioEffect* createEffectInstance (audioMasterCallback audioMaster)
    {
            return new mySynth (audioMaster);
    }

我是c ++和VST编程的初学者,我在编译样本AGainADelay以及vstxSynth时没有遇到任何问题。这是我自己的第一次尝试,而且我真的很困惑,从查看示例代码我似乎无法找到任何理由为什么这不起作用。

任何帮助将不胜感激。由于这对我来说是一个主要的学习曲线,如果您能够尽可能简单地解释,我将不胜感激。

谢谢你:)

2 个答案:

答案 0 :(得分:2)

没有看到类mySynth代码,很难说,但是当你有一个包含纯虚函数的类时,通常会遇到这个错误。或者您是从具有纯虚函数的基类派生的,并且无法使用派生类实现覆盖它。

如果您不知道这意味着什么,请在您的类(和子类)中查找声明为此的函数

 virtual int my_function() = 0;

这种函数是纯虚函数,有一个函数被认为是一个抽象类,无法实例化。为此,您需要提供一个实现。

答案 1 :(得分:0)

您的processReplacing()方法未正确覆盖基类AudioEffect中声明的签名。签名如下所示:

void processReplacing(float** inputs, float** outputs, VstInt32 sampleFrames);

您的替换正在使用double,而应使用float代替。