我正在嘗試編寫一個函數,該函數作用於結構數組中的成員,該結構是另一個結構:)的成員。我需要做的第一件事是找出結構數組的長度,但我不斷得到錯誤expression must be class type.
如何確定另一個結構內部的結構數組的長度
什麼是適當的方式來獲得這個數組的長度? (PS功能必須採取Student
結構作爲參數。)
的結構:
struct Class
{
string title;
int units;
char grade;
};
struct Student
{
string name;
double gpa;
Class classes[500];
};
我的功能看起來是這樣的:
void gpaCalculate (Student s)
{
int size = s.classes.size() ;
//Lots of awesome code
}
對於固定大小的數組使用'std :: array',否則通常使用'std :: vector'。兩者都有'size'成員函數。數組是內置的,所以他們沒有任何成員或任何東西。 – chris
如果您確實需要按照該問題編碼,請將幻數500設爲常量「MAX_CLASSES」或類似的值。正如克里斯指出的,有更好的解決方案。實際的問題是你試圖在本地數組上調用'size()'(實際上沒有方法) – John3136
通過const引用傳遞's'也可能會有好處。 – chris