vendredi 21 août 2015

Strange errors on visual studio 2013 c++

I am doing my university assignment which involves classes in C++ on Visual Studio 2013. I think my code is 100% correct but I don't know why I am getting these errors "IntelliSense: no instance of overloaded function "Student::Student" matches the specified type" and " IntelliSense: no instance of overloaded function "std::list<_Ty, _Alloc>::push_back [with _Ty=Course *, _Alloc=std::allocator]" matches the argument list argument types are: (Course *) object type is: std::list>"

"student.h"

#include <list>

#include "course.h"
#include "department.h"
using namespace std;

class Student{

private:

char* name;
char* rollno;
list<Course*> courses;
int course_count;
Department dept;

public:

Student(Department*, char*, char*);


};

Student::Student(Department* dept, char* nam, char* roll){

int len = strlen(nam)+1;
name = new char[len];

for(int i=0; i<len; i++){
    name[i] = nam[i];
}

len = strlen(roll)+1;
rollno = new char[len];

for(int i=0; i<len; i++){

    rollno[i] = roll[i];
}

course_count = 0;
}

"course.h"

class Course{

private:

char* name;
char* code;

public:
Course();
Course(char*, char*);
};

"department.h"

#include <list>

#include "teacher.h"
#include "course.h"
#include "student.h"

using namespace std;

class Department{

private:

list<Teacher*> teachers;
int teach_count;
list<Course*> courses;
int course_count;
list<Student*> students;
int stu_count;
char* name;

public:

Department(char*);
Department();

void add_dept(char* );
char* get_dept_name();
void add_teach(char*);
void add_course(char*,char*);
void add_stu(char*, char*, Department*);
};

Department::Department(char* nam){

int len = strlen(nam) + 1;
name = new char[len];

for (int i = 0; i < len; i++){

    name[i] = nam[i];
}

teach_count = course_count = stu_count = 0;
}

void Department::add_dept(char*nam){

int len = strlen(nam) + 1;
name = new char[len];

for (int i = 0; i < len; i++){

    name[i] = nam[i];
}
}

char* Department::get_dept_name(){

return name;
}

void Department::add_teach(char* nam){

Teacher* temp = new Teacher(nam);
teachers.push_back(temp);
teach_count++;
}

void Department::add_course(char* nam, char* cod){

Course* temp = new Course(nam,cod);
courses.push_back(temp);
course_count++;
}

void Department::add_stu(char* nam, char* roll,Department* dept){


Student* temp = new Student(dept,nam, roll);

students.push_back(temp);
stu_count++;


}

"university.h"

#include <list>
#include "department.h"

using namespace std;

class University{

private:

list <Department*> departments;
char* name;
char* address;
int dept_count;

public:

University();

University(char*, char*);

void add_department(char*);

void add_teach_to_dept(char*, char*);

void add_course_to_dept(char*, char*, char*);

void add_stu_to_dept(char*, char*, char*);
};

University::University(char* nam, char* add){

int len = strlen(nam) + 1;

name = new char[len];

for (int i = 0; i < len; i++){

    name[i] = nam[i];
}

int len = strlen(add) + 1;

address = new char[len];

for (int i = 0; i < len; i++){

    address[i] = add[i];
}



}

void University::add_department(char* nam){

Department* temp = new Department(nam);
departments.push_back(temp);
dept_count++;
}

 void University::add_teach_to_dept(char* dept, char*nam){

 for (list<Department*>::iterator it = departments.begin(); it !=                departments.end(); ++it){
    if (strcmp((*it)->get_dept_name(), dept)){

        (*it)->add_teach(nam);
    }
 }
}

void University::add_course_to_dept(char* dept, char* nam, char* cod){

for (list<Department*>::iterator it = departments.begin(); it != departments.end(); ++it){
    if (strcmp((*it)->get_dept_name(), dept)){

        (*it)->add_course(nam, cod);
    }
  }

 }

void University::add_stu_to_dept(char* dept, char* nam, char* rollno){


for (list<Department*>::iterator it = departments.begin(); it != departments.end(); ++it){
    if (strcmp((*it)->get_dept_name(), dept)){

        (*it)->add_stu(nam, rollno,*it);
    }
}

}

"teacher.h"

 #ifndef _teacher_h
 #define _teacher_h



 #include<list>

 #include "course.h"

 using namespace std;

 class Teacher{

 private:

 char* name;
 list<Course*> teaches;

 public:

 Teacher(char*);
 void add_course(char* , char*);
  };

 Teacher::Teacher(char* nam){

 int len = strlen(nam)+1;
 name = new char[len];

 for (int i = 0; i < len; i++){

    name[i] = nam[i];
  }
  }

  void Teacher::add_course(char* nam, char* cod){

  Course* temp = new Course(nam,cod);
  teaches.push_back(temp);
  }


  #endif // !_teacher_h

Aucun commentaire:

Enregistrer un commentaire