我有一个类AudioDeviceManager,它通过引用AudioAnalyzer类传递std :: vector。
我希望其他对象能够访问此向量(传递给AudioAnalyzer类)。为此,我在AudioAnalyzer类中创建了一个指针:
std::vector<float> *pointer;
我使用Objective-C属性为它创建了一个getter。 当我在同一个班级时,我似乎可以很好地访问它并将其传递给其他对象(通过引用)
NSLog(@"%i", [self pointer]);
det->process(time, *[self pointer]);
但是,我似乎无法从另一个类,频谱中访问它 我用方法调用初始化这个频谱类(fft_data也是一个指向std :: vector的指针)
- (id) initWithDataVec:(std::vector<float>*)address {
...
fft_data = address;
...
但NSLog(@"value: %i", fft_data);
返回0。
编写`NSLog(@“value:%i”,&amp; fft_data)返回看似有效的地址。但这不是指针的地址吗?
我不确定我的代码是否正确。我正在寻找一种方法来“分享”不同类别中的单个向量。理想情况下,一个类将接收一个指向它们可以随时访问的向量的指针,而不必拥有另一个类调用的函数。
答案 0 :(得分:0)
你不能只是(通过引用)将同一个std :: vector的同一个实例传递给需要它的所有类的构造函数吗?