我创建了以下类,其中包含卷积器的所有数组,并且我尝试创建一个getter函数来访问另一个类中的卷积器:
class ImpulseCreator
{
public:
ImpulseCreator();
~ImpulseCreator();
OwnedArray<fftconvolver::FFTConvolver> getConvolver();
private:
//convolver
AudioSampleBuffer impulseBuffer1;
AudioSampleBuffer impulseBuffer2;
AudioSampleBuffer finalImpulseBuffer;
OwnedArray<fftconvolver::FFTConvolver> preConvolvers;
OwnedArray<fftconvolver::FFTConvolver> convolvers;
};
然后在.cpp文件中,我有以下代码:
OwnedArray<fftconvolver::FFTConvolver> ImpulseCreator::getConvolver()
{
return convolvers;
}
关于“返回卷积器”;行,我收到一条错误消息:
Call to deleted constructor of OwnedArray<fftconvolver::FFTConvolver>
有任何想法吗?
最佳答案
您应该将函数的签名更改为
OwnedArray<fftconvolver::FFTConvolver> const& getConvolver() const;
所以您要返回对该数组的引用。按照编写的方式,它将返回数组的副本,编译器似乎在告诉您该副本构造函数已删除。
如果需要修改数组的内容,还可以返回一个非常量引用
OwnedArray<fftconvolver::FFTConvolver>& getConvolver();