Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ vs 2017中的14个错误我认为与未识别我的课程有关 我已经解决了,现在不需要这个问题,谢谢你的帮助_C++_Syntax Error - Fatal编程技术网

C++ vs 2017中的14个错误我认为与未识别我的课程有关 我已经解决了,现在不需要这个问题,谢谢你的帮助

C++ vs 2017中的14个错误我认为与未识别我的课程有关 我已经解决了,现在不需要这个问题,谢谢你的帮助,c++,syntax-error,C++,Syntax Error,在vs 2017中,我的程序出现了一些错误,有时去,有时留。我认为这是因为我没有识别我的类,我认为这与#include没有像过去一样正常工作有关。我以前有过一个类似的错误(比如;在标识符之前丢失),当我转发声明而不是#include时,该错误停止了。请帮助 表单类 #pragma once #include "IContain.h" #include <vector> #include "Rect.h" class Form : public IContain { public: F

在vs 2017中,我的程序出现了一些错误,有时去,有时留。我认为这是因为我没有识别我的类,我认为这与#include没有像过去一样正常工作有关。我以前有过一个类似的错误(比如;在标识符之前丢失),当我转发声明而不是#include时,该错误停止了。请帮助

表单类

#pragma once
#include "IContain.h"
#include <vector>
#include "Rect.h"
class Form : public IContain
{
public:
Form();
~Form();

bool paint() override;
bool init() override;
Rect<int> Rect() override;
bool hasfocus() override;
Graphics& getgraphics() override;

bool add(IStaticControl & control) override;
bool remove(IStaticControl & control) override;

bool update() override;
pixelvec mousepos() override;

private:
std::vector<IStaticControl> controls;
#pragma once
#include "Graphics.h"
#include "Rect.h"
#include "IContain.h"

class IStaticControl
{
public:
IStaticControl();
~IStaticControl();

//actions
virtual bool init() = 0;
virtual bool paint(Graphics& gfx) = 0;
virtual void update() = 0; // check for input that matches this' conditions. check container's input 
virtual void show() = 0;
virtual void hide() = 0;

//info
virtual Rect<int> rect() = 0;
virtual IContain& Container() = 0;
virtual bool rezizeable() = 0;
virtual bool hasfocus() = 0;
#pragma once
#include <vector>
#include "EventBase.h"
#include <queue>
template<typename EventArgsT>
class Myevent
{
public:


Myevent(size_t handlerCount, size_t instanceCount, std::queue<EventBase>& 
eventqueue) : Eventintances(instanceCount), handlers(handlerCount) {this->eventqueue = eventqueue};

    ~Myevent() {};


inline void raise(EventArgsT args) {eventqueue.push(Inst(args, handlers));};

size_t addhandler(void(*handler)(EventArgsT) , bool& success = false) {
    size_t size = handlers.size;
    for (size_t i; i >= size; i++) {
        if (handlers[i] = NULL) { handlers[i] = handler; success = true; 
return i; }
    }
    return 0;
};

void removehandler(size_t i) { handlers[i] = NULL };

class Inst : EventBase {
    EventArgsT args;
public:
    Inst(EventArgsT args, std::vector<void(*)(EventArgsT)>& handlers) {
        this->args = args;
        this->handlers = handlers;
    };

    // go to each function in handlers and invoke them with args
     void process() override {};

private:
    std::vector<void(*)(EventArgsT)>& handlers;
};
private:
std::vector<void(*)(EventArgsT)> handlers;

std::vector<Inst> Eventintances;

std::queue<EventBase>& eventqueue;

};
#pragma once
#include "Myevent.h"
#include "graphics.h"
#include "IStaticControl.h"

class IContain
{
public:


virtual bool paint() = 0;
virtual bool init() = 0;
virtual Rect<int> rect() = 0;
virtual bool hasfocus() = 0;
virtual Graphics& getgraphics() = 0;

virtual bool add(IStaticControl & control) = 0;
virtual bool remove(IStaticControl & control) = 0;

virtual bool update() = 0;
virtual pixelvec mousepos() = 0;
// same for keyboard input
private:

};
#pragma一次
#包括“IContain.h”
#包括
#包括“Rect.h”
课程形式:公共IContain
{
公众:
形式();
~Form();
boolpaint()覆盖;
bool init()覆盖;
Rect()重写;
bool hasfocus()覆盖;
Graphics&getgraphics()覆盖;
布尔添加(IStaticControl&control)覆盖;
bool-remove(IStaticControl&control)超控;
bool update()覆盖;
pixelvec mousepos()覆盖;
私人:
病媒控制;
})

控制接口类

#pragma once
#include "IContain.h"
#include <vector>
#include "Rect.h"
class Form : public IContain
{
public:
Form();
~Form();

bool paint() override;
bool init() override;
Rect<int> Rect() override;
bool hasfocus() override;
Graphics& getgraphics() override;

bool add(IStaticControl & control) override;
bool remove(IStaticControl & control) override;

bool update() override;
pixelvec mousepos() override;

private:
std::vector<IStaticControl> controls;
#pragma once
#include "Graphics.h"
#include "Rect.h"
#include "IContain.h"

class IStaticControl
{
public:
IStaticControl();
~IStaticControl();

//actions
virtual bool init() = 0;
virtual bool paint(Graphics& gfx) = 0;
virtual void update() = 0; // check for input that matches this' conditions. check container's input 
virtual void show() = 0;
virtual void hide() = 0;

//info
virtual Rect<int> rect() = 0;
virtual IContain& Container() = 0;
virtual bool rezizeable() = 0;
virtual bool hasfocus() = 0;
#pragma once
#include <vector>
#include "EventBase.h"
#include <queue>
template<typename EventArgsT>
class Myevent
{
public:


Myevent(size_t handlerCount, size_t instanceCount, std::queue<EventBase>& 
eventqueue) : Eventintances(instanceCount), handlers(handlerCount) {this->eventqueue = eventqueue};

    ~Myevent() {};


inline void raise(EventArgsT args) {eventqueue.push(Inst(args, handlers));};

size_t addhandler(void(*handler)(EventArgsT) , bool& success = false) {
    size_t size = handlers.size;
    for (size_t i; i >= size; i++) {
        if (handlers[i] = NULL) { handlers[i] = handler; success = true; 
return i; }
    }
    return 0;
};

void removehandler(size_t i) { handlers[i] = NULL };

class Inst : EventBase {
    EventArgsT args;
public:
    Inst(EventArgsT args, std::vector<void(*)(EventArgsT)>& handlers) {
        this->args = args;
        this->handlers = handlers;
    };

    // go to each function in handlers and invoke them with args
     void process() override {};

private:
    std::vector<void(*)(EventArgsT)>& handlers;
};
private:
std::vector<void(*)(EventArgsT)> handlers;

std::vector<Inst> Eventintances;

std::queue<EventBase>& eventqueue;

};
#pragma once
#include "Myevent.h"
#include "graphics.h"
#include "IStaticControl.h"

class IContain
{
public:


virtual bool paint() = 0;
virtual bool init() = 0;
virtual Rect<int> rect() = 0;
virtual bool hasfocus() = 0;
virtual Graphics& getgraphics() = 0;

virtual bool add(IStaticControl & control) = 0;
virtual bool remove(IStaticControl & control) = 0;

virtual bool update() = 0;
virtual pixelvec mousepos() = 0;
// same for keyboard input
private:

};
#pragma一次
#包括“Graphics.h”
#包括“Rect.h”
#包括“IContain.h”
类静态控制
{
公众:
IStaticControl();
~IStaticControl();
//行动
虚拟bool init()=0;
虚拟布尔绘画(图形和gfx)=0;
virtual void update()=0;//检查与此条件匹配的输入。检查容器的输入
虚拟void show()=0;
虚空隐藏()=0;
//信息
虚拟Rect Rect()=0;
虚拟IContain&容器()=0;
虚拟bool rezizeable()=0;
虚拟布尔hasfocus()=0;
})

事件类

#pragma once
#include "IContain.h"
#include <vector>
#include "Rect.h"
class Form : public IContain
{
public:
Form();
~Form();

bool paint() override;
bool init() override;
Rect<int> Rect() override;
bool hasfocus() override;
Graphics& getgraphics() override;

bool add(IStaticControl & control) override;
bool remove(IStaticControl & control) override;

bool update() override;
pixelvec mousepos() override;

private:
std::vector<IStaticControl> controls;
#pragma once
#include "Graphics.h"
#include "Rect.h"
#include "IContain.h"

class IStaticControl
{
public:
IStaticControl();
~IStaticControl();

//actions
virtual bool init() = 0;
virtual bool paint(Graphics& gfx) = 0;
virtual void update() = 0; // check for input that matches this' conditions. check container's input 
virtual void show() = 0;
virtual void hide() = 0;

//info
virtual Rect<int> rect() = 0;
virtual IContain& Container() = 0;
virtual bool rezizeable() = 0;
virtual bool hasfocus() = 0;
#pragma once
#include <vector>
#include "EventBase.h"
#include <queue>
template<typename EventArgsT>
class Myevent
{
public:


Myevent(size_t handlerCount, size_t instanceCount, std::queue<EventBase>& 
eventqueue) : Eventintances(instanceCount), handlers(handlerCount) {this->eventqueue = eventqueue};

    ~Myevent() {};


inline void raise(EventArgsT args) {eventqueue.push(Inst(args, handlers));};

size_t addhandler(void(*handler)(EventArgsT) , bool& success = false) {
    size_t size = handlers.size;
    for (size_t i; i >= size; i++) {
        if (handlers[i] = NULL) { handlers[i] = handler; success = true; 
return i; }
    }
    return 0;
};

void removehandler(size_t i) { handlers[i] = NULL };

class Inst : EventBase {
    EventArgsT args;
public:
    Inst(EventArgsT args, std::vector<void(*)(EventArgsT)>& handlers) {
        this->args = args;
        this->handlers = handlers;
    };

    // go to each function in handlers and invoke them with args
     void process() override {};

private:
    std::vector<void(*)(EventArgsT)>& handlers;
};
private:
std::vector<void(*)(EventArgsT)> handlers;

std::vector<Inst> Eventintances;

std::queue<EventBase>& eventqueue;

};
#pragma once
#include "Myevent.h"
#include "graphics.h"
#include "IStaticControl.h"

class IContain
{
public:


virtual bool paint() = 0;
virtual bool init() = 0;
virtual Rect<int> rect() = 0;
virtual bool hasfocus() = 0;
virtual Graphics& getgraphics() = 0;

virtual bool add(IStaticControl & control) = 0;
virtual bool remove(IStaticControl & control) = 0;

virtual bool update() = 0;
virtual pixelvec mousepos() = 0;
// same for keyboard input
private:

};
#pragma一次
#包括
#包括“EventBase.h”
#包括
模板
Myevent类
{
公众:
Myevent(大小句柄计数、大小实例计数、标准::队列和
eventqueue):EventIntance(instanceCount),handlerCount(handlerCount){this->eventqueue=eventqueue};
~Myevent(){};
内联void-raise(EventArgsT-args){eventqueue.push(Inst(args,handlers));};
size\u t addhandler(void(*handler)(EventArgsT),bool&success=false){
size\u t size=handlers.size;
对于(大小\u t i;i>=大小;i++){
if(handlers[i]=NULL){handlers[i]=handler;success=true;
返回i;}
}
返回0;
};
void removehandler(size_t i){handlers[i]=NULL};
类指令:事件库{
事件argst args;
公众:
Inst(EventArgsT args、std::vector和handlers){
此->args=args;
这->处理程序=处理程序;
};
//转到处理程序中的每个函数,并使用args调用它们
void process()重写{};
私人:
std::向量和处理器;
};
私人:
向量处理器;
病媒事件;
std::队列和事件队列;
};
控制容器接口类

#pragma once
#include "IContain.h"
#include <vector>
#include "Rect.h"
class Form : public IContain
{
public:
Form();
~Form();

bool paint() override;
bool init() override;
Rect<int> Rect() override;
bool hasfocus() override;
Graphics& getgraphics() override;

bool add(IStaticControl & control) override;
bool remove(IStaticControl & control) override;

bool update() override;
pixelvec mousepos() override;

private:
std::vector<IStaticControl> controls;
#pragma once
#include "Graphics.h"
#include "Rect.h"
#include "IContain.h"

class IStaticControl
{
public:
IStaticControl();
~IStaticControl();

//actions
virtual bool init() = 0;
virtual bool paint(Graphics& gfx) = 0;
virtual void update() = 0; // check for input that matches this' conditions. check container's input 
virtual void show() = 0;
virtual void hide() = 0;

//info
virtual Rect<int> rect() = 0;
virtual IContain& Container() = 0;
virtual bool rezizeable() = 0;
virtual bool hasfocus() = 0;
#pragma once
#include <vector>
#include "EventBase.h"
#include <queue>
template<typename EventArgsT>
class Myevent
{
public:


Myevent(size_t handlerCount, size_t instanceCount, std::queue<EventBase>& 
eventqueue) : Eventintances(instanceCount), handlers(handlerCount) {this->eventqueue = eventqueue};

    ~Myevent() {};


inline void raise(EventArgsT args) {eventqueue.push(Inst(args, handlers));};

size_t addhandler(void(*handler)(EventArgsT) , bool& success = false) {
    size_t size = handlers.size;
    for (size_t i; i >= size; i++) {
        if (handlers[i] = NULL) { handlers[i] = handler; success = true; 
return i; }
    }
    return 0;
};

void removehandler(size_t i) { handlers[i] = NULL };

class Inst : EventBase {
    EventArgsT args;
public:
    Inst(EventArgsT args, std::vector<void(*)(EventArgsT)>& handlers) {
        this->args = args;
        this->handlers = handlers;
    };

    // go to each function in handlers and invoke them with args
     void process() override {};

private:
    std::vector<void(*)(EventArgsT)>& handlers;
};
private:
std::vector<void(*)(EventArgsT)> handlers;

std::vector<Inst> Eventintances;

std::queue<EventBase>& eventqueue;

};
#pragma once
#include "Myevent.h"
#include "graphics.h"
#include "IStaticControl.h"

class IContain
{
public:


virtual bool paint() = 0;
virtual bool init() = 0;
virtual Rect<int> rect() = 0;
virtual bool hasfocus() = 0;
virtual Graphics& getgraphics() = 0;

virtual bool add(IStaticControl & control) = 0;
virtual bool remove(IStaticControl & control) = 0;

virtual bool update() = 0;
virtual pixelvec mousepos() = 0;
// same for keyboard input
private:

};
#pragma一次
#包括“Myevent.h”
#包括“graphics.h”
#包括“IStaticControl.h”
I类容器
{
公众:
虚拟布尔绘制()=0;
虚拟bool init()=0;
虚拟Rect Rect()=0;
虚拟布尔hasfocus()=0;
虚拟图形&getgraphics()=0;
虚拟布尔添加(IStaticControl&control)=0;
虚拟布尔删除(IStaticControl&control)=0;
虚拟布尔更新()=0;
虚拟像素向量mousepos()=0;
//键盘输入也一样
私人:
};
这些都是错误

错误C2433:ISTATICECONTION::“不允许在数据声明上使用C++游戏C:\\用户\ HOME\文档\ Visual Studio 2017 \项目\ C++游戏\ C++游戏\ ISTATICE控件.H 21 < /P> 错误C2433:ISTATICECONTION::“不允许在数据声明上使用C++游戏C:\\用户\ HOME\文档\ Visual Studio 2017 \项目\ C++游戏\ C++游戏\ ISTATICE控件.H 21 < /P> 错误C4430缺少类型说明符-假定为int。注意:C++不支持默认的INTC++游戏C:\Huff\HOME\文档\Visual Studio 2017 \项目\ C++游戏\ C++游戏\ ISTATICH控件.H 21 < /P> 错误C4430缺少类型说明符-假定为int。注意:C++不支持默认的INTC++游戏C:\Huff\HOME\文档\Visual Studio 2017 \项目\ C++游戏\ C++游戏\ ISTATICH控件.H 21 < /P>

错误C2061语法错误:标识符“ISTATICECONTRORY”C++游戏C++:\\用户\HOME\文档\Visual Studio 2017 \项目\ C++游戏\ C++游戏\ ICONTH.H 17 < /P>

错误C2061语法错误:标识符“ISTATICECONTRORY”C++游戏C++:\\用户\HOME\文档\Visual Studio 2017 \项目\ C++游戏\ C++游戏\ ICONTH.H 18 < /P> 错误C2143语法错误:缺少“;”在'&'C++游戏C:\\用户\ HOME\文档\ Visual Studio 2017 \项目\ C++游戏\ C++游戏\ ISTATICH控件.H 21 < /P> 错误C2143语法错误:缺少“;”在'&'C++游戏C:\\用户\ HOME\文档\ Visual Studio 2017 \项目\ C++游戏\ C++游戏\ ISTATICH控件.H 21 < /P> 错误C2238“;”前面的意外标记C++游戏C:\Huff\HOME\文档\Visual Studio 2017 \项目\ C++游戏\ C++游戏\ ISTATICH控件.H 21 < /P> 错误C2238“;”前面的意外标记C++游戏C:\Huff\HOME\文档\Visual Studio 2017 \项目\ C++游戏\ C++游戏\ ISTATICH控件.H 21 < /P> 请帮忙

更新:有10个错误


代码变化很小

您有循环依赖关系
IStaticControl.h
包括
IContain.h
,而
IContain.h
包括
IStaticControl.h

(您忽略了提及文件名,但可以从错误消息中推断出它们。)

这就是为什么此行中未定义
IContain

virtual IContain& Container() = 0;
。。。因此,编译器认为您试图将名为
IContain
的成员变量声明为隐式
int

virtual int IContain; & Container() = 0;

这就是为什么它抱怨数据成员是
virtual
、隐式
int
、以及涉及
的语法错误
&

现在显示13个错误,错误是什么?添加您得到的错误?我认为行“&”之前缺少语法:virtualicontain&Container()=