c++;编译错误C4430、C2653、C2146、C2143 我正在做一些用C++编写的仿真软件。目前,当我试图构建代码时,我遇到了9个编译错误,所有这些错误都抱怨我刚刚添加的三行代码。这些行是PublisherModule.h中的声明: class PublisherModule : public s::Module, public s::Singleton<PublisherModule>, public s::Interface, public s::htmlPage{ public: ... Types::ModeRecord; ModeRecord modeData; ModeRecord *modeDataPtr; ... };
c++;编译错误C4430、C2653、C2146、C2143 我正在做一些用C++编写的仿真软件。目前,当我试图构建代码时,我遇到了9个编译错误,所有这些错误都抱怨我刚刚添加的三行代码。这些行是PublisherModule.h中的声明: class PublisherModule : public s::Module, public s::Singleton<PublisherModule>, public s::Interface, public s::htmlPage{ public: ... Types::ModeRecord; ModeRecord modeData; ModeRecord *modeDataPtr; ... };,c++,compiler-errors,C++,Compiler Errors,publish()函数现在如下所示: void PublisherModule::publishData(void){ ... Types::ModeRecord ModeData; Types::ModeStatusRecord *ModeDataPtr = &ModeData; DataStore->getModeData(*ModeDataPtr); ... } 编译器给我的错误是: 错误C2653:“类型”:不是类或命名空间名称 错
publish()
函数现在如下所示:
void PublisherModule::publishData(void){
...
Types::ModeRecord ModeData;
Types::ModeStatusRecord *ModeDataPtr = &ModeData;
DataStore->getModeData(*ModeDataPtr);
...
}
编译器给我的错误是:
错误C2653:“类型”:不是类或命名空间名称
错误C4430:缺少类型说明符-假定为int。注意:C++不支持默认INT/P>
错误C2146:语法错误:缺少“;”在标识符“ModeData”之前
错误C2143:语法错误:缺少“;”在“*”之前
我总共得到错误C4430
4次,其他错误都是一次。他们都在抱怨我添加到.h
文件中的行。谷歌发现了第一个错误,并在SO上找到了这个答案:,看起来原因是头文件中的循环依赖性
但据我所知,这并没有发生在这里。。。我可能会出现这个编译错误还有其他原因吗?是什么阻止了我的代码生成
将光标悬停在已添加到.h
文件Types::ModeRecord
中的第一行上时显示的消息是:
错误:需要类限定名
以下是您发布的代码的缩写版本,以及我的观察:
class PublisherModule [... bunch of base classes...]
{
public:
Types::ModeRecord;
};
你觉得这条线有什么用Types::ModeRecord代码>
它的格式不是[TypeName][VariableName]代码>(例如inti;
)
它看起来不像一个方法原型(例如voidfoo(inti);
)
它不是类型定义。
它看起来不像任何普通的C++。
你认为它在做什么?以下是你发布的代码的简略版本,根据我的观察:
class PublisherModule [... bunch of base classes...]
{
public:
Types::ModeRecord;
};
你觉得这条线有什么用
Types::ModeRecord代码>
它的格式不是[TypeName][VariableName]代码>(例如inti;
)
它看起来不像一个方法原型(例如voidfoo(inti);
)
它不是类型定义。
它看起来不像任何普通的C++。
你认为它在做什么?以下是你发布的代码的简略版本,根据我的观察:
class PublisherModule [... bunch of base classes...]
{
public:
Types::ModeRecord;
};
你觉得这条线有什么用
Types::ModeRecord代码>
它的格式不是[TypeName][VariableName]代码>(例如inti;
)
它看起来不像一个方法原型(例如voidfoo(inti);
)
它不是类型定义。
它看起来不像任何普通的C++。
你认为它在做什么?以下是你发布的代码的简略版本,根据我的观察:
class PublisherModule [... bunch of base classes...]
{
public:
Types::ModeRecord;
};
你觉得这条线有什么用
Types::ModeRecord代码>
它的格式不是[TypeName][VariableName]代码>(例如inti;
)
它看起来不像一个方法原型(例如voidfoo(inti);
)
它不是类型定义。
它看起来不像任何普通的C++。
你认为它在做什么?在源代码的哪一行你会收到错误消息错误C2653:“SIFFTypes”:不是类或名称空间名称
?抱歉,我的问题中有输入错误-现在已修复。就在Types::ModeRecord上面的那一行代码>在.h
文件中。这一行实际上只是一个注释-上面没有可执行代码。在源代码的哪一行,您会收到错误消息error C2653:“SIFFTypes”:不是类或命名空间名称
?抱歉,我的问题中有错别字-现在已修复。就在Types::ModeRecord上面的那一行代码>在.h
文件中。这一行实际上只是一个注释-上面没有可执行代码。在源代码的哪一行,您会收到错误消息error C2653:“SIFFTypes”:不是类或命名空间名称
?抱歉,我的问题中有错别字-现在已修复。就在Types::ModeRecord上面的那一行代码>在.h
文件中。这一行实际上只是一个注释-上面没有可执行代码。在源代码的哪一行,您会收到错误消息error C2653:“SIFFTypes”:不是类或命名空间名称
?抱歉,我的问题中有错别字-现在已修复。就在Types::ModeRecord上面的那一行代码>在.h
文件中。那一行实际上只是一条注释,上面没有可执行代码。对不起,这是一个打字错误,在复制和粘贴代码时一定错过了。现在修改。看起来他正在尝试使用语句,这将解释modelecord
的两种用法,就在下面……对不起,这是一个打字错误,在复制和粘贴代码时一定错过了。现在修改。看起来他正在尝试使用语句,这将解释modelecord
的两种用法,就在下面……对不起,这是一个打字错误,在复制和粘贴代码时一定错过了。现在修改。看起来他正在尝试使用语句,这将解释modelecord
的两种用法,就在下面……对不起,这是一个打字错误,在复制和粘贴代码时一定错过了。现在修改。看起来他几乎是在尝试一个使用
语句,这将直接解释modelecord
的两个用法。。。