我创建了以下类,其中包含一个自有的卷积器数组,并且我尝试创建一个 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();
关于c++ - 在类中为拥有的数组创建 get 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35200964/