小编Nik*_*a C的帖子

C++循环包括

我无法解决这个循环依赖问题; 总是得到这个错误:"无效使用不完整类型结构GemsGame"我不知道为什么编译器不知道GemsGame的声明,即使我包含gemsgame.h两个类都相互依赖(GemsGame存储GemElements的向量) ,和GemElements需要访问这个相同的向量)

这是GEMELEMENT.H的部分代码:

#ifndef GEMELEMENT_H_INCLUDED
#define GEMELEMENT_H_INCLUDED

#include "GemsGame.h"

class GemsGame;

class GemElement {
    private:
        GemsGame* _gemsGame;

    public:
        GemElement{
            _gemsGame = application.getCurrentGame();
            _gemsGame->getGemsVector();
        }
};


#endif // GEMELEMENT_H_INCLUDED
Run Code Online (Sandbox Code Playgroud)

......和GEMSGAME.H:

#ifndef GEMSGAME_H_INCLUDED
#define GEMSGAME_H_INCLUDED

#include "GemElement.h"

class GemsGame {
    private:
        vector< vector<GemElement*> > _gemsVector;

    public:
        GemsGame() {
            ...
        }

        vector< vector<GemElement*> > getGemsVector() {
            return _gemsVector;
        }
}

#endif // GEMSGAME_H_INCLUDED
Run Code Online (Sandbox Code Playgroud)

c++ compiler-errors header circular-dependency

5
推荐指数
2
解决办法
1万
查看次数

C++正则表达式不匹配多行字符串

当字符串Im匹配是多行字符串时,我遇到了C++ 0x正则表达式的问题.这是我试图使用的代码片段:

std::smatch regMatch;
std::string data = "<key>id</key><string>1</string>\n<key>user</key><string>admin</string>";
if (std::regex_match(data, regMatch, std::regex("<key>user</key><string>(.*?)</string>"))) {
    std::cout << "Reg match: " << regMatch[1].str() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

c++ regex

5
推荐指数
1
解决办法
3982
查看次数