2016-11-30 69 views
-1

一直試圖使用多態方法將枚舉類型從一個類更改爲另一個也受保護的類。
37 |錯誤:期望'skeletonType'之前的主表達式。我是否需要聲明另一組枚舉類型?如何在另一部分代碼中使用類的枚舉類型?

enum Skeleton_Type { NONE, HYDROSTATIC, EXOSKELETON }; 
    class Invertebrate { 
     private: 
     string name; 
     Skeleton_Type skeletonType; 
     protected: 
     void setSkeletonType(Skeleton_Type skeletonType); 
    class Spider : public Invertebrate 
    void setSkeleton (Skeleton_Type skeletonType) 
    { 
    (37)   Invertebrate::setSkeletonType(Skeleton_Type skeletonType); 
     } 
+0

請在做深奧的東西之前瞭解該語言的基本語法。 'Invertebrate :: setSkeletonType(Skeleton_Type skeletonType);'這不是你如何調用一個函數。 'Skeleton_Type skeletonType'是一個聲明。你不能使用一個聲明作爲實際的函數參數,這是沒有意義的。你需要一個表達。嘗試'Invertebrate :: setSkeletonType(skeletonType);' –

+0

適當的縮進將會很好。 – Borgleader

+0

謝謝@ n.m只是不習慣使用枚舉類型:( – FlyingKalamari

回答

0

有與代碼語法問題屈指可數您提供,但你提出的特定錯誤的情況下,這是因爲電話:

Invertebrate::setSkeletonType(Skeleton_Type skeletonType); 

有參數列表中參數的類型;這條線應該簡單地讀:

Invertebrate::setSkeletonType(skeletonType); 

其他問題包括:你的Invertebrate類聲明的末尾沒有右括號/分號並沒有大括號/分號封閉的Spider類的主體。這些可能不會導致有問題的錯誤,但即使您解決了上述問題,它們肯定會導致編譯問題。