我正在尝试编写一个函数,该函数作用于结构数组中的成员,该结构是另一个结构:)的成员。我需要做的第一件事是找出结构数组的长度,但我不断得到错误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