2012-11-20 61 views
1

我遇到了一個錯誤,我一直在爲cpp文件中的'use'函數獲取「不是類型名稱」。我試圖製作一個結構數組,來存儲「Items」的數據。我正在製作一個基於文本的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 
} 
+0

什麼是'吃可用'[10];'在做什麼? –

+0

@SidharthMudgal創建一個飲食結構陣列 – Riotson

回答

4

你需要傳遞一個類型和名稱的功能:

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

在這種情況下,你只是想使用內部useables對象,你不需要將它傳遞給函數,並且可以只寫

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

在這兩種情況下輸入都會導致錯誤,謝謝! 「內部」可用對象是什麼意思?如在,只有該類使用它? – Riotson

+0

另外,如果你不介意的另一個問題,你會如何建議是我最好的結構數組?只需要聲明所有在.h中的20個字符?或者讀取/從一個txt文件?我將會有不少「物品」,我希望能夠對我的角色使用他們的效果,但我不確定最有效的方式來做到這一點。 目前我只是將它們全部在.h中聲明,然後有一個菜單(switch)或if語句,並根據它是什麼項目,讓它執行該項目應該具有的任何「效果」並應用它對那個角色。 – Riotson

+1

@Riotson by「internal」我的意思是隻有類可以直接使用*對象,但其他人仍然可以通過getter和setter來訪問它。如果你不知道這些是什麼,你應該閱讀一本關於類的C++書,或者在Google上查找「getter」和「setter」,你將學到很多有關類的東西。對於第二個,這是一個完整的問題,你應該問這個問題:) – alestanis