从serperate .cpp指向数组的指针

时间:2015-07-11 05:22:55

标签: c++ arrays pointers

尝试从单独的.cpp指向一个数组但从中获取NULL值 我的阵列。

的main.cpp

int main()
{
    storage exp;
    cout << exp.pointer[0];
    _getch();
    return 0;
}

storage.h定义

class storage
{
    public:
    storage();
    int* pointer = experience;
    int storage::experience[10];
    ~storage();
};

storage.cpp

storage::storage()
{
}
int experience[10] = { 100, 200, 400, 600, 1000, 2500, 3000, 4000, 5000, 10000;
storage::~storage()
{
}

这是一个好玩的东西。我需要返回数组值,但我无法做到这一点,我无法从头开始创建数组,因为它是手工制作的值。它必须去某个地方。我不想把它放在主要部分(之前在单独的代码中完成),因为我试图学习如何用指针来做这件事,但我做的事情非常糟糕。

2 个答案:

答案 0 :(得分:0)

你说:

  

尝试从单独的.cpp指向一个数组,但从我的数组中获取NULL值

首先,行

int storage::experience[10];

是无效的C ++代码。编译器应将此报告为错误。你可能在storage.h中有什么意思:

extern int experience[10];

class storage
{
    public:
    storage();
    int* pointer = experience;
    ~storage();
};

答案 1 :(得分:0)

我不认为存储指针并让每个对象包含它自己都是最好的方法。如果存储类的所有对象共享experience[10]数组的相同值,则应在{{1}的声明中将其声明为static int,而不是int } storage中的类。不要在课程storage.h中指明它;你在类声明中声明了变量,因此不需要。

storage

然后在class storage { //other variables static int experience[10]; }; 中,输入:

storage.cpp

(在分号前不要忘记结束括号!)

然后存储类中的所有对象&#34;共享&#34; int数组;只有该成员的一个实例,任何对象都可以访问该实例。