home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C++ for Dummies (3rd Edition)
/
C_FD.iso
/
CHAP18
/
CHAP18_2.CPP
< prev
next >
Wrap
C/C++ Source or Header
|
1996-09-15
|
1KB
|
75 lines
// Chap18_2.cpp
#include <string.h>
#include <iostream.h>
class Advisor
{
};
class Student
{
public:
Student(char *pName = "no name")
{
strncpy(name, pName, sizeof(name));
average = semesterHours = 0;
}
void addCourse(int hours, float grade)
{
average = (semesterHours * average + grade);
semesterHours += hours;
average = average / semesterHours;
}
int hours( ) { return semesterHours;}
float gpa( ) { return average;}
float calcTuition()
{
cout << "In Student calcTuition\n";
return 0.0F;
}
protected:
char name[40];
int semesterHours;
float average;
};
class GraduateStudent : public Student
{
public:
GraduateStudent(char *pName,
Advisor &adv) : Student(pName),
advisor(adv)
{
qualifierGrade = 0;
}
qualifier( ) { return qualifierGrade;};
float calcTuition()
{
cout << "In Student calcTuition\n";
return 0.0F;
}
protected:
Advisor advisor;
int qualifierGrade;
};
void fn(Student &x)
{
x.calcTuition(); //to which calcTuition() does this refer?
}
int main()
{
Student s;
Advisor advisor;
GraduateStudent gs("No Name", advisor);
fn(s);
fn(gs);
return 0;
}