尝试从单独的.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()
{
}
这是一个好玩的东西。我需要返回数组值,但我无法做到这一点,我无法从头开始创建数组,因为它是手工制作的值。它必须去某个地方。我不想把它放在主要部分(之前在单独的代码中完成),因为我试图学习如何用指针来做这件事,但我做的事情非常糟糕。
答案 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数组;只有该成员的一个实例,任何对象都可以访问该实例。