Я интерфейс заявил в своем заголовке 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: 'структура': отсутствует имя тега
ошибка C2011: '< безымянного-тега>': «перечисление 'redefinition
ошибка C2226: синтаксическая ошибка: неожиданный тип' < unnamed-tag> '
Что не так с моим кодом?
EDIT: В заголовок включены ограждения. Я использую Eclipse CDT с компилятором Microsoft.
Весь заголовок:
#ifndef MYINTERFACE_H_
#define 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;
};
#endif
и класс используется в:
#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
Обратите внимание, что «поток» еще один класс, и используется без каких-либо проблем.
Вам не хватает двойной кавычки внутри вашего импорта, это может быть опечатка. –
Разве вы не забыли закрыть цитату после '#include? MyInterface.h'? –
Извините, это была опечатка. TY David для исправления этого. В коде кавычки должным образом закрыты. –