C ++对Holder :: menus(Struct)的未定义引用

时间:2016-05-30 01:21:20

标签: c++ struct

好的,所以我有一个如此定义的结构:

#ifndef __STRUCTS_H__
#define __STRUCTS_H__

struct counts {
    int views = 0;
    int inits = 0;
};

#endif

我有一个类,它将具有可由所有类访问的完全静态方法和变量。

#ifndef __HOLDER_H__
#define __HOLDER_H__

#include "Structs.h"

class Holder
{
public:
    static counts menus;

    Holder() {
        menus = counts();
    }
};

#endif

所以我尝试使用这个方法,编译器吐出错误"对Holder :: menus"

的未定义引用

以下是触发此事件的段(HelloWorldScene.cpp)

#include "HelloWorldScene.h"
#include "SimpleAudioEngine.h"
#include "Holder.h"
#include "Structs.h"

USING_NS_CC;

HelloWorld::HelloWorld(void)
{
    //Constructor
    Debug::crashLog("**__Menu Deinit__**");
    //SUDO Missing stuff
    Holder::menus.inits -= 1;
}

为什么会有问题?

1 个答案:

答案 0 :(得分:0)

在您的Holder实施文件中,您需要:

counts Holder::menus;

如果您没有Holder.cpp文件(并且您不想要),则可以将其直接放入HelloWorldScene.cpp