C++继承有关问题
C++继承问题
#include<iostream>
using namespace std;
#include<string>
class Student
{
public:
Student();
Student(int num, string name, string sex, int age, string addr);
Student(int num);
Student(const Student &a);
~Student();
void Display1(void);
protected:
int m_num;
string m_name;
string m_sex;
int m_age;
string m_addr;
};
Student::Student(void)
{
m_num=0;
m_name="\0";
m_sex="\0";
m_age=0;
m_addr="\0";
}
Student::Student(int num, string name, string sex, int age, string addr)
{
m_num=num;
m_name=name;
m_sex=sex;
m_age=age;
m_addr=addr;
}
Student::Student(int num)
{
m_num=num;
m_name="\0";
m_sex="\0";
m_age=0;
m_addr="\0";
}
Student::Student(const Student &a)
{
m_num=a.m_num;
m_name=a.m_name;
m_sex=a.m_sex;
m_age=a.m_age;
m_addr=a.m_addr;
}
Student::~Student(void)
{
cout<<"jiaoyang is a good boy"<<endl;
}
void Student::Display1(void)
{
cout<<m_num<<m_name<<m_sex<<m_age<<m_addr<<endl;
}
class Teacher:private Student/*这里我把private改为public就对了。。。。呵呵什么原因。。?。*/
{
public:
Teacher();
Teacher(int num, string name, string sex, int age, string addr, double wage);
void Display2(void);
private:
double m_wage;
};
Teacher::Teacher(void):Student()
{
m_wage=0;
}
Teacher::Teacher(int num, string name, string sex, int age, string addr, double wage):Student(num, name, sex, age, addr)
{
m_wage=wage;
}
void Teacher::Display2(void)
{
Display1();
cout<<m_wage<<endl;
}
int main()
{
Teacher a(1,"jiaoyang","boy",4,"nanchang",4);
Student b(1,"jiaoyang","boy",4,"nanchang");
Student *p=&a;
p->Display1();
return 0;
}
问题在注释部分。。。。谢谢大神。。。
------解决方案--------------------
------解决方案--------------------
#include<iostream>
using namespace std;
#include<string>
class Student
{
public:
Student();
Student(int num, string name, string sex, int age, string addr);
Student(int num);
Student(const Student &a);
~Student();
void Display1(void);
protected:
int m_num;
string m_name;
string m_sex;
int m_age;
string m_addr;
};
Student::Student(void)
{
m_num=0;
m_name="\0";
m_sex="\0";
m_age=0;
m_addr="\0";
}
Student::Student(int num, string name, string sex, int age, string addr)
{
m_num=num;
m_name=name;
m_sex=sex;
m_age=age;
m_addr=addr;
}
Student::Student(int num)
{
m_num=num;
m_name="\0";
m_sex="\0";
m_age=0;
m_addr="\0";
}
Student::Student(const Student &a)
{
m_num=a.m_num;
m_name=a.m_name;
m_sex=a.m_sex;
m_age=a.m_age;
m_addr=a.m_addr;
}
Student::~Student(void)
{
cout<<"jiaoyang is a good boy"<<endl;
}
void Student::Display1(void)
{
cout<<m_num<<m_name<<m_sex<<m_age<<m_addr<<endl;
}
class Teacher:private Student/*这里我把private改为public就对了。。。。呵呵什么原因。。?。*/
{
public:
Teacher();
Teacher(int num, string name, string sex, int age, string addr, double wage);
void Display2(void);
private:
double m_wage;
};
Teacher::Teacher(void):Student()
{
m_wage=0;
}
Teacher::Teacher(int num, string name, string sex, int age, string addr, double wage):Student(num, name, sex, age, addr)
{
m_wage=wage;
}
void Teacher::Display2(void)
{
Display1();
cout<<m_wage<<endl;
}
int main()
{
Teacher a(1,"jiaoyang","boy",4,"nanchang",4);
Student b(1,"jiaoyang","boy",4,"nanchang");
Student *p=&a;
p->Display1();
return 0;
}
问题在注释部分。。。。谢谢大神。。。
------解决方案--------------------
------解决方案--------------------