如何在主函数之外访问数组?
How to access array in function outside of main?
我正在尝试创建一个打印商店库存的程序。我在 getInventory 函数中打印出对象中的变量。但是,当我尝试在getStore函数中打印出整个库存时,它不返回任何内容。我觉得我的指针正确指向我的数组是一个问题,但我不确定。
#include <iostream>
#include <string>
class Weapon
{
private:
std::string nameWeapon, messageUsed;
bool ownedWeapon;
double weaponCost;
int numberUses;
public:
//Default constructor
Weapon()
{
nameWeapon = "weapon name";
messageUsed = "weapon sound";
weaponCost = 0;
ownedWeapon = false;
numberUses = 1;
}
//Non-Default Constructor
Weapon(std::string nW, std::string mU,double wC,bool oW, int nU )
{
nameWeapon = nW;
messageUsed = mU;
weaponCost = wC;
ownedWeapon = oW;
numberUses = nU;
}
void getInventory()
{
std::cout << nameWeapon << "t" << messageUsed << "t" << weaponCost << "t" << ownedWeapon << "t" << numberUses << "n";
}
void getStore(Weapon* weaponArray)
{
std::cout << "Name" << "t" << "Sound" << "t" << "Price" << "t" << "Owned";
for (int i = 0; i < 9; i++)
{
weaponArray[i].getInventory();
}
}
};
int main()
{
Weapon weaponArray[9]{};
weaponArray[0] = Weapon("Broad Sword","Clang!",50,false,3);
weaponArray[1] = Weapon("Champions Sword","Swoosh!",99.99,false,5);
weaponArray[2] = Weapon("Dagger","Ding!",12.25,false,1);
weaponArray[3] = Weapon("Poisin Dagger","Shh",18.50,false,1);
weaponArray[4] = Weapon("Sturdy Dagger","Gronk!",14.75,false,3);
weaponArray[5] = Weapon("Short Bow","T'wang!",35.75,false,3);
weaponArray[6] = Weapon("Champions Bow","Swoop!",90.15,false,5);
weaponArray[7] = Weapon("Champions Axe","Bash!",110.11,false,6);
weaponArray[8] = Weapon("Throwing Axe","Bonk!",25.75,false,2);
void getStore();
system("pause");
return 0;
}
void getStore();
这是一个函数存根。它声明了一个函数getStore
,该函数不带任何参数,也不返回任何稍后要实现的内容。这几乎肯定是一个错字。
此外,由于void getStore(Weapon* weaponArray)
属于武器类,因此您必须在看起来不正确的武器上调用它。您可能打算这样做:
class Weapon {
// ...
};
void getStore(Weapon* weaponArray, unsigned sz)
{
std::cout << "Name" << "t" << "Sound" << "t" << "Price" << "t" << "Owned";
for (unsigned i = 0; i < sz; i++)
{
weaponArray[i].getInventory();
}
}
int main()
{
Weapon weaponArray[9]{};
weaponArray[0] = Weapon("Broad Sword","Clang!",50,false,3);
//...
getStore(weaponArray, 9);
}
相关文章:
- 在 C++ 中访问数组负索引处的内存不会返回垃圾
- 使用指针访问数组中的对象数据成员
- VTK 图像数据,访问数组中的 1 个图像
- 调用函数后无法访问数组
- 如何从地图访问数组的元素?
- 访问数组中的不同元素
- 使用指针访问数组元素时出现意外结果
- 使用指针访问数组的值
- C++基于1而不是0的访问数组,方法是在编译时移位
- 如何在主函数之外访问数组?
- 如何在 llvm 的 cpp api 中使用 CreateInBoundsGEP 来访问数组的元素?
- 访问数组中所有结构的成员
- C 是否每次访问数组时都复制元素?
- C++ 为什么访问数组中的元素会返回指针?
- 如何通过指针访问数组的元素
- 指针数组交换无需直接访问数组
- 直接从指针/地址访问数组的元素
- 我有一个 Qt 对象的 2d 数组,我已经用值播种了这些对象。如何访问数组中特定对象的值并更改它们?
- 如何使用 C+ 中的指针访问数组中的特定索引
- 通过两个下标访问数组成员