Hi guys.
I have written the following codes:
Professor.ccp
Code:
#include <iostream>
#include <string>
#include <conio.h>
#include <vector>
#include "Professor.h"
using namespace std;
int Professor::lastAssignedID=0;
class Course;
Professor::Professor():Person()
{}
Professor::Professor(string name, string ic, string gender): Person(name,ic,gender)
{
staffID=lastAssignedID;
lastAssignedID+=1;
}
int Professor::getStaffID(){
return staffID;
}
Course* Professor::getCourse(string courseCode){
int i=-1;
bool check=false;
while (check==false){
i=i+1;
if ((teachingCourses[i].getCourseName()).compare(courseCode)==0){
check=true;
}
}
return teachingCourses[i];
}
string Professor::getTeachingCourses(){
string result;
for(int i=0;i<teachingCourses.size();i++){
if (i==0)
result=result+(teachingCourses[i]).getCourseCode();
else
result=result+","+(teachingCourses.get[i]).getCourseCode();
}
return result;
}
and Course.cpp
Code:
#include <iostream>
#include <string>
#include <boost/xpressive/xpressive.hpp>
#include "Course.h"
#include "Professor.h"
using namespace std;
using namespace boost::xpressive;
Professor tmp;
Course::Course(string courseCode,string courseName,int modularCredits,Professor newProfessor)
{
setCourseCode(courseCode);
setCourseName(courseName);
setModularCredits(modularCredits);
setProfessor(newProfessor);
}
void Course::setProfessor(Professor newProfessor)
{
tmp.setName(newProfessor.getName());
tmp.setGender(newProfessor.getGender());
tmp.setIC(newProfessor.getIC());
string line;
line=tmp.getName();
theProfessor.setName(line);
line=tmp.getIC();
theProfessor.setIC(line);
line=tmp.getGender();
theProfessor.setGender(line);
}
string Course::getProfessor()
{
string tmp;
tmp=theProfessor.getName();
return tmp;
}
void Course::setCourseName(string newCourseName)
{
courseName=newCourseName;
}
string Course::getCourseName()
{
return courseName;
}
void Course::setCourseCode(string newCourseCode)
{
sregex base=as_xpr('C')>>'S'>>(range('1','6'))>>repeat<3>(_d);
if (regex_match(newCourseCode,base)==true){
courseCode=newCourseCode;
}
else{
cout<<"Invalid new Course Code";
}
}
string Course::getCourseCode(){
return courseCode;
}
void Course::setModularCredits(int newModularCredits)
{
modularCredits=newModularCredits;
}
int Course::getModularCredits()
{
return modularCredits;
}
/* string Course::toString()
{
return (courseCode+","+courseName+","+modularCredits);
}*/
When I compile, the following errors appear:
19 C:\Dev-Cpp\Save\Professor.cpp prototype for `Course* Professor::getCourse(std::string)' does not match any in class `Professor'
15 C:\Dev-Cpp\Save\Professor.h Course* Professor::getCourse(std::string*)
C:\Dev-Cpp\Save\Professor.cpp In member function `Course* Professor::getCourse(std::string)':
24 C:\Dev-Cpp\Save\Professor.cpp `getCourseName' has not been declared
24 C:\Dev-Cpp\Save\Professor.cpp request for member of non-aggregate type before '(' token
C:\Dev-Cpp\Save\Professor.cpp In member function `std::string Professor::getTeachingCourses()':
35 C:\Dev-Cpp\Save\Professor.cpp `getCourseCode' has not been declared
35 C:\Dev-Cpp\Save\Professor.cpp request for member of non-aggregate type before '(' token '
37 C:\Dev-Cpp\Save\Professor.cpp 'class std::vector<Course*, std::allocator<Course*> >' has no member named 'get'
Basically the methods of class Course cannot be used in class Professor.
How to solve this problem?