c – 未识别接口

c – 未识别接口,第1张

概述我有一个在自己的头MyInterface.h中声明的接口: class MyInterface{public: virtual ~MyInterface(){} virtual void initialize() = 0; virtual void newValueSound(int stream, double value) = 0; virtual void 我有一个在自己的头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’类型重定义
错误C2226:语法错误:意外类型’< unnamed-tag>‘

我的代码出了什么问题?

编辑:
标题包括警卫.
我使用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;};#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

请注意,“Stream”是另一个类,它使用没有任何问题.

解决方法 事情是字符串“interface”在Objbase.h中是typedef.所以我不能使用“interface”作为标识符.如果我使用另一个字符串作为标识符,它可以正常工作 总结

以上是内存溢出为你收集整理的c – 未识别接口全部内容,希望文章能够帮你解决c – 未识别接口所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1230003.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存