2016-12-19 216 views
-1

我是C++編程新手。我試圖在另一個類中創建一個類的對象數組。 當我試圖運行這個我得到錯誤。其中一個錯誤是unknown override specifier。有人可以告訴我,我該如何解決這個問題?如何添加一個對象數組到另一個類

class Teacher 
{ 
    Student t[10]; 
public: 

    void setMark() 
    { 
     t[2].mark = 80; 
    } 
}; 

class Student 
{ 
public: 

    int mark; 

}; 

int main() 
{ 
    return 0; 
} 
+0

如果你定義'Teacher'前級'Student'? – piarston

回答

2

在解析Teacher的定義時,符號Student未知。編譯器不知道它命名了一個類型。我的編譯器(gcc)拋出一個錯誤:

main.cpp:3:5: error: ‘Student’ does not name a type 
    Student t[10]; 
    ^

我沒有看到任何「未知覆蓋說明符」。這可能與您使用的不同編譯器有關,也可能與您沒有向我們顯示的其他問題有關。

解決方案?首先定義Student,因爲它不取決於Teacher

+0

爲什麼downvote?我測試了它,它工作。如果還有另外一個問題,那就不會在問題中給出。 – CygnusX1

+1

請注意,該問題聲稱有不同的錯誤。正確的做法是要求[mcve]。你不知道是否有與發佈的代碼和一個OP實際上試圖修復的任何連接。 – juanchopanza

+0

@juanchopanza如果這是正確的行動方案,你爲什麼不要求它? – wasthishelpful

1

只需交換兩個類的順序即可。編譯器不知道什麼是學生,因爲它沒有被聲明,當編譯器達到線Student t[10];

順便說一句,你可能想要使用vector<Student>而不是一個數組。

1

您正在課堂教師中使用學生對象,在調用之前甚至沒有聲明過。如果你想在後者中使用前者,你必須在老師面前申報學生課程。

+0

我不明白downvote的原因。 –

1

需要聲明學生類第一或對代碼頂部添加原型

class Student 
{ 
public: 
    int mark; 
}; 

class Teacher 
{ 
    Student t[10]; 
public: 
    void setMark() 
    { 
     t[2].mark = 80; 
    } 
}; 

int main() { 
    return 0; 
} 
相關問題