64,682
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<string>
using namespace std;
//------------------------------
class student
{
public:
void display();
void get();
protected:
int num;
string name;
char sex;
};
void student::display()
{
cout<<"num:"<<num<<'\n';
cout<<"name:"<<name<<endl;
cout<<"sex:"<<sex<<endl;
}
void student::get() // mark
{
cout<<"输入num:";
cin>>num;
cout<<"输入name:";
cin>>name;
cout<<"输入sex:";
cin>>sex;
}
//----------------------------------
class student1:protected student
{
public:
void display1();
void get1(); // mark
private:
int age;
string addr;
};
void student1::display1()
{
display();
cout<<"age:"<<age<<'\n';
cout<<"addr:"<<addr<<'\n';
}
void student1::get1() // mark
{
get(); // mark
cout<<"输入age:";
cin>>age;
cout<<"输入addr:";
cin>>addr;
}
//---------------------------
int main()
{
student1 xize;
xize.get1();
xize.display1();
return 0;
}
// student.h
class student
{
public:
virtual void input(istream &is);
virtual void display(ostream &os);
private:
int num_;
string name_;
};
class specific_student : public student
{
public:
virtual void input(istream &is);
virtual void display(ostream &os);
private:
int age_;
string addr_;
};
istream &operator>>(istream &is, student &s);
ostream &operator<<(ostream &os, student &s);
// student.cpp
void student::input(istream &is)
{
is >> num_;
is >> name_;
}
void student::display(ostream &os)
{
os << "number: " << num_ << "\n";
os << "name: " << name_ << "\n";
}
void specific_student::input(istream &is)
{
student::input(is);
is >> age_;
is >> addr_;
}
void specific_student::display(ostream &os)
{
student::display(os);
os << "age: " << age_ << "\n";
os << "address: " << addr_ << "\n";
}
istream &operator>>(istream &is, student &s)
{
s.input(is);
return is;
}
ostream &operator<<(ostream &os, student &s)
{
s.display(os);
return os << "\n";
}