2013-07-11 49 views
-2
class grades 
{ 
private: 
    char *grade; 
    string course[20]; 
    int numCourse; 
public: 
    grades(); 
    bool setGrade(char *gradeIn); 
    bool setCourse(char *nameIn); 

}; 

所以這是我的類聲明。我想在數組聲明中設置一個常數而不是20。我會怎麼做呢?我曾嘗試過使用靜態常量,但問題是每次該類返回一個超出範圍的錯誤。如何在C++中設置一個常量爲最大大小的數組?

+0

使用具有'resize'功能的矢量。 – 0x499602D2

+3

「20」*是*「常數」。 ;) –

+0

你確實需要發佈不成功的代碼。 –

回答

3

這不行?

class grades 
{ 
private: 
    char *grade; 
    static const int MAX_COURSES = 20; 
    string course[MAX_COURSES]; 
    int numCourse; 
public: 
    grades(); 
    bool setGrade(char *gradeIn); 
    bool setCourse(char *nameIn); 

}; 
+1

我重新制定這個看起來更像是一個實際的答案。 – Shoe

+0

謝謝!我忘了從頂部到底部編譯的文件。我在數組聲明下面的公共部分中聲明瞭靜態常量聲明 – LizardKing

+0

順便說一句,在類中的其他位置使用MAX_COURSES也不應該是個問題,即使它在「使用」之下的「低於」位置也是如此。 –

1

使用#define。老派,但它仍然有效。

或...聲明一個

const int MAX_ARRAY_SIZE = 20 
在命名空間

(即,類外)。

+7

我不會推薦這個。我們在這裏使用C++。 – 0x499602D2

+1

我的印象是,常量不是所有的首都,而且這是命名宏的正確方法。 –

相關問題