【问题标题】:Struct Arrays in a Class类中的结构数组
【发布时间】:2012-11-20 23:06:05
【问题描述】:

我遇到了一个错误,我在 cpp 文件中的“使用”函数中不断收到“不是类型名称”。我正在尝试制作一个结构数组,以存储“项目”的数据。我正在制作一个基于文本的 RPG 游戏,所以我正在尝试创建一个具有使用功能的项目类,以在角色上使用各种项目(在结构数组中)。我试过用几种不同的方式编写它并以其他方式调用它,但我无法让这个错误消失。甚至将结构放在类之前,公开等。

class Items 
{ 
private:
    struct eating
    {
        int itemNumber;
        char name[30];
    };

public:
    Items();
    eating useables[10];
    void use(useables);
};


void Items::use(useables) // Error is here, tells me useables is not a type name
{
    // To use items on characters
}

【问题讨论】:

  • eating useables[10]; 在做什么?
  • @SidharthMudgal 创建一个饮食结构数组

标签: arrays class function struct


【解决方案1】:

您需要将类型和名称传递给您的函数:

void Items::use(eating useables)
{
    // To use items on characters
}

如果你只是想使用内部的useables对象,你不需要把它传递给函数,直接写

void Items::use()
{
    useables[1].itemNumber = 1; // For instance
}

【讨论】:

  • 在这两个中都输入了错误,谢谢! “内部”可用对象是什么意思?如,只有那个类使用它?
  • 另外,如果你不介意还有一个问题,你会建议我如何最好地制作我的结构数组?只需在 .h 中声明全部说 20 个?或者从 txt 文件中读取它们?我将有很多“项目”,我希望能够在我的角色上使用它们的效果,但我不确定最有效的方法来做到这一点。目前我只是要在.h中声明它们,然后有一个菜单(开关)或if语句,并根据它是什么项目,让它做项目应该有的任何“效果”并将其应用于那个角色。
  • @Riotson by "internal" 我的意思是只有类可以直接使用对象,但其他人仍然可以通过 getter 和 setter 访问它。如果你不知道这些是什么,你应该阅读一本关于类的 C++ 书籍,或者在 Google 上查找“getter”和“setter”,你会学到很多关于类的东西。对于第二个问题,这是一个完整的问题,您应该在 SO 上提问 :)
猜你喜欢
  • 1970-01-01
  • 2012-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-17
  • 1970-01-01
  • 2021-03-22
  • 2011-02-19
相关资源
最近更新 更多