gpt4 book ai didi

c++ - 在 C++ 类中实现 TPCircularBuffer

转载 作者:行者123 更新时间:2023-11-28 01:24:19 26 4
gpt4 key购买 nike

我正在尝试在我的类中实现一个循环缓冲区。

如果我在 init 方法中启动它,它会工作,但我想将缓冲区变量声明为私有(private)的,这样我就可以从类中的任何地方访问它:

#import "AudioKit/TPCircularBuffer.h"

class MyClass{
public:
MyClass() { //..
}

MyClass(int id, int _channels, double _sampleRate)
{
// if I uncomment the following line, it works:
// TPCircularBuffer cbuffer;
TPCircularBufferInit(&cbuffer, 2048);
}
private:
// this doesn't work:
TPCircularBuffer cbuffer;
};

这样做会导致以下编译错误:调用“MyClass”的隐式删除复制构造函数

我不明白?

最佳答案

TPCircularBuffer有一个 volatile 数据成员,它是不可复制的。这使您的类非常不可复制。

如果你需要在 MyClass 上复制语义,你需要提供你自己的复制构造函数:

MyClass(MyClass const& other) : // ...
{
TPCircularBufferInit(&cbuffer, 2048); // doesn't copy anything, but you might want to
}

关于c++ - 在 C++ 类中实现 TPCircularBuffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54656304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com