未定义的对整数静态数组的引用

时间:2013-05-30 17:19:24

标签: c++ arrays class reference static

我对C ++有点新意,所以我正在编写一个文本RPG来测试我学到的东西。我想这样做,这样玩家就会被提示进入他们三个角色中的每一个的等级(法师,战士,弓箭手等)。

字符类存储在名为cls []的int的静态数组中。我宁愿保持静态,也不要成为这个类的对象,因为游戏中几乎所有东西都会尝试访问该类的成员。但由于某种原因,它不断给我错误信息:未定义的引用`playerVars :: cls'。我猜这意味着它无法找到数组或什么?我真的很感激任何有关这个问题的亮点。

intro.h
-----------------------------
#ifndef INTRO_H
#define INTRO_H
#include <iostream>

using namespace std;

class intro
{
    public:
        intro();
        int inint;
        void classDecide(int charUsed);
};

#endif


intro.cpp
-----------------------------
#include "intro.h"
#include "playerVars.h"

intro::intro()
{
    classDecide(0); //Calls the classDecide function using your first of 3 characters
}

void intro::classDecide(int charUsed)
{
    cin >> inint;   //Asks for the number of the class that you want
    playerVars::setClass(charUsed,inint);
}


playerVars.h
-----------------------------
#ifndef PLAYERVARS_H
#define PLAYERVARS_H

using namespace std;

class playerVars
{
    public:
        playerVars();
        static int cls[3];
        static void setClass(int classToSet, int setTo);
};

#endif


playerVars.cpp
-----------------------------
#include "playerVars.h"

playerVars::playerVars()
{
}

void playerVars::setClass(int classToSet, int setTo)
{
    cls[classToSet]=setTo;  //sets the class of player classToSet to setTo
            //undefined reference to `playerVars::cls'
}

1 个答案:

答案 0 :(得分:1)

添加此

int playerVars::cls[3] = {0};

到playerVars.cpp