c ++ struct link函数

时间:2014-10-15 12:49:52

标签: c++ struct

我在创建结构函数链接时遇到问题。

错误1错误C2143:语法错误:缺少';'在'*'之前(Config.h) 错误2错误C4430:缺少类型说明符 - 假定为int。 (config.h中)

Library.h

#include "Config.h"
#include "Struct.h"

Struct.h

struct COMMANDSTRUCT
{
    char Name[50];
    int Enable;
    int Price;
};

Config.cpp

   #include "Library.h"

    COMMANDSTRUCT* Config::getIndex(std::string Text)
    {
        for (int i = 0; i < m_COMMANDSTRUCT.size(); i++)
        {
            if (strcmp(m_COMMANDSTRUCT[i].Name, Text.c_str()) == 0)
            {
                return &m_COMMANDSTRUCT[i];
            }
        }

        return NULL;
    }

的config.h

class Config
{
public:

    static COMMANDSTRUCT* getIndex(std::string Text);
    static std::vector<COMMANDSTRUCT> m_COMMANDSTRUCT;

};

使用

COMMANDSTRUCT * lpCommand = Config::getIndex("post");

2 个答案:

答案 0 :(得分:1)

我认为它可能是&#34; Library.h&#34;

中#includes的顺序

Library.h - &gt;包括Config.h(Config类)THEN Struct.h(COMMANDSTRUCT) Config.h - &gt;取决于COMMANDSTRUCT

所以Config.h必须是#include Structus之后的

答案 1 :(得分:0)

您需要包含struct声明,以便其他文件知道该类型是什么。

#include "struct.h"  // or whatever you named the file

这必须在Func.h中完成,然后应该包含在Func.cpp中,以便两个文件都可以访问该声明。