c++ - 在类中为拥有的数组创建 get 函数

标签 c++

我创建了以下类,其中包含一个自有的卷积器数组,并且我尝试创建一个 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/

相关文章:

c++ - 返回值的简单模板类成员函数特化

c++ - 将矩阵旋转 N 度

c++ - 输出到文件或 cout 的通用流——C++

c++ - 清除 ptr_array

c++ - interactive-brokers api reqMktData() 晚了 24 小时

c++ - std::tuple 元素的延迟初始化

c++ - 为什么 std::shared_ptr 从基类和派生类调用析构函数,而 delete 只调用基类的析构函数?

c++ - key 存在于 map 变量中,但 find 找不到它

c++ - 生成代码以实例化具有不同参数的函数模板

c++ - 双指针和它们之间的括号