我有一个叫Student的类(class),看起来像这样

class Student
{   string name;
    unsigned long int ID ;
    string email;
    unsigned short int year;
    public :
         Student() // Constructor
         string getName(void);
         unsigned long int getID(void);
         string getEmail(void);
         unsigned short int getYear(void);
{

和另一个名为eClass的类
class eClass
 {
     string eclass_name;
     Student* students[100];
     unsigned int student_count;
     public:
        eClass(string name)
        {
            student_count=0 ;
            eclass_name = name  ;
        }

        void add(Student& obj)
        {
            bool res = exists(Student obj);  ****
            if (res)
            {
            }
            else
            {
                students[student_count] = obj ;  ****
                student_count++ ;
            }
        }

        bool exists(Student &obj)
        {
            unsigned long int code = obj.getID(); ****
            bool flag = FALSE ;
            for (int i = 0 ; i<=student_count ; i++ )
            {
                unsigned long int st = students[i]->getID();
                if (code==st)
                {
                    flag = TRUE;
                }
            }
            return flag;
        }
    };

它基本上会创建一个代表类(class)的对象,然后在检查学生是否已经属于该类(class)之后,通过add()将学生添加到类(class)中。

在标有****的行中出现错误。
有人可以帮我怎么回事...我不确定我是否了解如何在另一个对象中使用类的对象。

最佳答案

这是不正确的:

       bool res = exists(Student obj);  // ****

它看起来应该像这样:
       bool res = exists(obj);  // ****
obj是可在函数内部使用的函数(Student类型)的参数。在这一行上,您正在使用该参数将其传递给另一个函数。

关于c++ - 在另一个类中使用一个类的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34099781/

10-12 00:12
查看更多