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