简单指针问题(在不同类之间共享向量)

时间:2011-02-28 20:08:50

标签: c++ objective-c memory pointers vector

我有一个类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)返回看似有效的地址。但这不是指针的地址吗?

我不确定我的代码是否正确。我正在寻找一种方法来“分享”不同类别中的单个向量。理想情况下,一个类将接收一个指向它们可以随时访问的向量的指针,而不必拥有另一个类调用的函数。

1 个答案:

答案 0 :(得分:0)

你不能只是(通过引用)将同一个std :: vector的同一个实例传递给需要它的所有类的构造函数吗?