4
我有一个接口,在它自己的头MyInterface.h声明:接口无法识别
class MyInterface{
public:
virtual ~MyInterface(){}
virtual void initialize() = 0;
virtual void newValueSound(int stream, double value) = 0;
virtual void newValueAlg1(int stream, double value) = 0;
virtual void newValueAlg2(int stream, double value) = 0;
};
每当我有这个头,并尝试使用该接口,例如:
#include "MyInterface.h"
void someMethod(){
MyInterface *interface;
}
我得到奇怪的编译错误就行了:
错误C2332:'struct':缺少标记名
错误C2011:'< unnamed-tag>':'enum 'type redefinition
error C2226:syntax error:unexpected type'< unnamed-tag>'
我的代码出了什么问题?编辑: 标题包括警卫。 我使用Eclipse CDT和Microsoft编译器。
整个头:
和类是用于:
#ifndef MAIN_H_
#define MAIN_H_
#include <asio.h>
#include "Stream.h"
#include "MyInterface.h"
class MicApp {
private:
long inputChannelCount;
Stream **streams;
MyInterface *interface;
public:
MicApp(MyInterface *interface);
void initializeASIODrivers();
char **getDriverNames(int *numberOfDrivers);
bool loadDriver(char *driverName);
ASIOError initDriver(ASIODriverInfo *asioDriverInfo);
long getChannelCount();
double getSampleRate();
void activateStream(bool activate, int stream);
ASIOError startASIO();
ASIOError stopASIO();
ASIOError exitDriver();
};
#endif
需要注意的是“流”是另一个类,它是不会有任何问题。
您在导入时缺少双引号,但这可能是拼写错误。 – 2012-03-09 16:30:43
难道你忘了在'#include“MyInterface.h'后关闭报价吗? – 2012-03-09 16:31:36
对不起,这里是一个输入错误。TY David纠正了这个错误。在代码中,报价已被正确关闭。 – 2012-03-09 16:33:31