0

I created a Class Student with instance data members like studentname, studentaddress, studentrollno i declared private static data member CollegeName that could be shared among all instances of class. used promptfunction to take user input from the console next functions to display student details. Meanwhile resulting in below errors : enter image description here

Meanwhile codes goes here:

  #include <iostream> 
  #include <string>

  using namespace std;


    class Student {

     private:
      int studentrollno;
      string studentName;
      string studentAddress;
      static string CollegeName;

     public:
        void setRollNo(int rollno) {
         studentrollno = rollno;
       }
       int  getRollNo() {
         return studentrollno;
       }

       void setName(string name) {
        studentName = name;
       }
      string getName() {
        return studentName;
       }

      void setAddress(string address) {
        studentAddress = address;
       }

      string getAddress() {
        return studentAddress;
      }

      static void setCollegeName(string collegename) {
        CollegeName = collegename;
       }

      static string getCollegeName() {
        return CollegeName;
      }


      void displayStudentDetails(); // member functions declare inside class Meanwhile it is defined 
      outside

     static void show() {
         cout << "this is static function " << endl;
     }
    };



      // member functions define outside Student class
       void Student :: displayStudentDetails() {
        cout << "Student Name : " << getName() << " Student RollNo :  " << getRollNo() << "Student Address 
      :  " << getAddress() << "CollegeName: "<< getCollegeName() << endl;
     }


    void promptValues(Student &student) {


      cout << "Enter the student Details " << endl;

      cout << "Enter the details about student objects " << endl;
      cout << endl;


       int studentrollno;
       string  studentname ,  studentaddress ;
      string collegename;
       cout << "Enter the RollNo of the student  " << endl;

       cin >> studentrollno;

     cout << "Enter the Name of the student  " << endl;
     cin >> studentname;
     cout << endl;

     cout << "Enter the address of the student  " << endl;
     cin >> studentaddress;
     cout << endl;

      cout << "Enter the collegeName of the student " << endl;
      cin >> collegename;
      student.setRollNo(studentrollno), student.setName(studentname), student.setAddress(studentaddress), 
      student.setCollegeName(collegename);

    }

    int main() {


      Student student1, student2 , student3 , student4 , student5 ;
      Student studentarrays[5] = { student1, student2, student3, student4, student5 };
      Student studentmodel[5];

       for (int i = 0; i < 5; i++) {
        Student model;
        model   = studentarrays[i];
         promptValues(model);
       studentmodel[i] = model;

      }

      for (Student studentdetails : studentmodel) {
        studentdetails.displayStudentDetails();
      }


      Student::show();


     return 0;
    }
Adrian Mole
  • 49,934
  • 160
  • 51
  • 83

1 Answers1

1

You have omited the definition of the static member Student::CollegeName. It is only declared in the class, now you should define it after the class declaration with this:

std::string Student::CollegeName;

For more information see https://en.cppreference.com/w/cpp/language/static

P. PICARD
  • 386
  • 1
  • 10