I have no error or warning when compling this code but as you can see it keeps changing one of my inputs (int ID) into a random number. This same number is still the output when i change the imput.
code:
#include<iostream>
#include<string>
#include<sstream>
using namespace std;
class student
{
protected:
string name;
int ID;
public:
student()
{
name = "no name";
ID = 0;
}
student (string pname,int pID)
{
name = pname;
ID = pID;
}
~student(){}
//virtual void add()=0;
virtual void print()=0;
};
class physstd : public student
{
private:
string course;
string grade;
int percentage;
public:
physstd()
{
course = "Null";
grade = "Null";
percentage = 0;
}
physstd(string name,int pID,string pcourse, string pgrade, int ppercentage):student(name,ID)
{
course = pcourse;
grade = pgrade;
percentage = ppercentage;
}
~physstd(){}
//void add();
void print()
{
cout<<"| "<<name<<" | "<<ID<<" | "<<course<<" | "<<grade<<" | "<<percentage<<"% |"<<endl<<endl;
}
};
class chemstd : public student
{
private:
string course;
string grade;
int percentage;
public:
chemstd()
{
course = "Null";
grade = "Null";
percentage = 0;
}
chemstd(string name,int pID,string pcourse, string pgrade, int ppercentage): student(name,ID)
{
course = pcourse;
grade = pgrade;
percentage = ppercentage;
}
~chemstd(){}
//void add();
void print()
{
cout<<"| "<<name<<" | "<<ID<<" | "<<course<<" | "<<grade<<" | "<<percentage<<"% |"<<endl<<endl;
}
};
class mathstd : public student
{
private:
string course;
string grade;
int percentage;
public:
mathstd()
{
course = "Null";
grade = "Null";
percentage = 0;
}
mathstd(string name,int pID,string pcourse, string pgrade, int ppercentage): student(name,ID)
{
course = pcourse;
grade = pgrade;
percentage = ppercentage;
}
~mathstd(){}
//void add();
void print()
{
cout<<"| "<<name<<" | "<<ID<<" | "<<course<<" | "<<grade<<" | "<<percentage<<"% |"<<endl<<endl;
}
};
int main()
{
student *pp;
physstd s;
physstd s1("Terence Britton",5,"C++","A*",100);
pp=&s; pp->print();
pp=&s1; pp->print();
return 0;
}
output:
| no name | 0 | Null | 0% |
| Terence Britton | -858993460 | C++ | A* | 100%
Obviously -858993460 is not what i entered in the main, which was 5. Any help with this would be much appreciated
thanks