gpt4 book ai didi

c++ - 从 serperate .cpp 指向数组的指针

转载 作者:太空宇宙 更新时间:2023-11-04 13:31:18 25 4
gpt4 key购买 nike

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

主要.cpp

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

存储.h

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

存储.cpp

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

这是一个角色扮演游戏。我需要返回数组值,但我不能这样做,而且我不能从头开始创建数组,因为它是手工制作的值。它必须去某个地方。我不想把它放在 main 中(之前在单独的代码中这样做),因为我正在尝试学习如何使用指针来做到这一点,但我做的事情非常错误。

最佳答案

我不认为存储指针并让每个对象包含自己的指针是执行此操作的最佳方法。如果存储类的所有对象共享 experience[10] 数组的相同值,那么您应该将其声明为 static int,而不是 int,在 storage.h 中的 storage 类的声明中。不要指定它在 storage 类中;您在类声明中声明变量,因此不需要。

class storage
{
//other variables
static int experience[10];
};

然后在storage.cpp中,放入:

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

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

然后存储类中的所有对象“共享”int数组;该成员只有一个实例可供任何对象访问和读取。

关于c++ - 从 serperate .cpp 指向数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31353735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com