我需要在目标 c 中为 C++ 类编写一个包装类。
在 Cocoa 项目中使用 C++ 类时,我已经提到了以下Can't find standard C++ includes when using C++ 类,并且能够摆脱词法或预处理器问题:'vector' file not found 问题。
但是,我不明白将接受多个参数的 C++ 方法覆盖到目标 c 方法。
有人可以帮我这样做吗?我想做的是为此http://breakfastquay.com/rubberband/code-doc/classRubberBand_1_1RubberBandStretcher.html#a0af91755d71eecfce5781f2cd759db85编写一个包装类
我试图这样做,以下是我坚持的方法......
// Wrapper.h
#import <Foundation/Foundation.h>
@interface Wrapper : NSObject {
void *myRubberBandStretcher;
}
#pragma mark - Member Functions
-(void)process:(const float)input samples:(size_t)samples final:(bool)final;
@end
///////////////////////////////////////// ///////////////////////////
//Wrapper.mm
#import "Wrapper.h"
#import "RubberBandStretcher.h"
@implementation Wrapper
-(id)init {
self = [super init];
if (self) {
myRubberBandStretcher = new RubberBand::RubberBandStretcher::RubberBandStretcher(44100, 2, 0, 1.0, 1.0);
}
return self;
}
-(void)process:(const float)input samples:(size_t)samples final:(bool)final {
static_cast<RubberBand::RubberBandStretcher *>(myRubberBandStretcher)->process(<#const float *const *input#>, <#size_t samples#>, <#bool final#>)
}