C++继承性和多态性(二)
2、派生类的继承方式:
![C++继承性和多态性(二) C++继承性和多态性(二)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
#include< iostream >
#include< string >
using namespace std;
//例,显示学生完整情况
class Student
{
private:
int num;
string name;
char sex;
public:
void display();
void setval(int num, string name,char sex);
};
class Student1 : public Student
{
private:
int age;
string addr;
public:
void display_1();
void setval(int age, string addr);
};
void Student1::display_1()
{
// cout<<"num:"<<num<<endl;
// cout<<"name:"<<name<<endl;
// cout<<"sex:"<<sex<<endl;
cout<<"age:"<<age<<endl;
cout<<"address:"<<addr<<endl;
}
void Student::display()
{
cout<<"num:"<<num<<endl;
cout<<"name:"<<name<<endl;
cout<<"sex:"<<sex<<endl;
}
void Student::setval(int num, string name,char sex)
{
this->num = num;
this->name = name;
this->sex = sex;
}
void Student1::setval(int age, string addr)
{
this->age = age;
this->addr = addr;
}
int main()
{
Student1 st1;
st1.Student::setval(10000,"gavin",'f');
st1.setval(12,"nupt");
st1.display();
//调用基类公有函数
return 0;
}
或者
#include< iostream >
#include< string >
using namespace std;
//例,显示学生完整情况
class Student
{
private:
int num;
string name;
char sex;
public:
void display();
void setval(int num, string name,char sex);
};
class Student1 : public Student
{
private:
int age;
string addr;
public:
void display_1();
void setval(int age, string addr);
};
void Student1::display_1()
{
// cout<<"num:"<<num<<endl;
// cout<<"name:"<<name<<endl;
// cout<<"sex:"<<sex<<endl;
display();
cout<<"age:"<<age<<endl;
cout<<"address:"<<addr<<endl;
}
void Student::display()
{
cout<<"num:"<<num<<endl;
cout<<"name:"<<name<<endl;
cout<<"sex:"<<sex<<endl;
}
void Student::setval(int num, string name,char sex)
{
this->num = num;
this->name = name;
this->sex = sex;
}
void Student1::setval(int age, string addr)
{
this->age = age;
this->addr = addr;
}
int main()
{
Student1 st1;
st1.Student::setval(10000,"gavin",'f');
st1.setval(12,"nupt");
// st1.display();
//调用基类公有函数
return 0;
}
私有继承(private):
![C++继承性和多态性(二) C++继承性和多态性(二)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
#include< iostream >
#include< string >
using namespace std;
//例,显示学生完整情况
class Student
{
private:
int num;
string name;
char sex;
public:
void display();
void setval(int num, string name,char sex);
};
class Student1 : private Student
{
private:
int age;
string addr;
public:
void display_1();
void setval(int num, string name,char sex,int age, string
addr);
};
void Student1::display_1()
{
// cout<<"num:"<<num<<endl;
// cout<<"name:"<<name<<endl;
// cout<<"sex:"<<sex<<endl;
display();
cout<<"age:"<<age<<endl;
cout<<"address:"<<addr<<endl;
}
void Student::display()
{
cout<<"num:"<<num<<endl;
cout<<"name:"<<name<<endl;
cout<<"sex:"<<sex<<endl;
}
void Student::setval(int num, string name,char sex)
{
this->num = num;
this->name = name;
this->sex = sex;
}
void Student1::setval(int num, string name,char sex,int age,
string addr)
{
Student::setval(num,name,sex);
this->age = age;
this->addr = addr;
}
int main()
{
Student1 st1;
// st1.Student::setval(10000,"gavin",'f');
st1.setval(10000,"gavin",'f',12,"nupt");
// st1.display();
//调用基类公有函数
return 0;
}
![C++继承性和多态性(二) C++继承性和多态性(二)](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
#include< iostream >
#include< string >
using namespace std;
//例,显示学生完整情况
class Student
{
protected:
int num;
string name;
char sex;
public:
void display();
void setval(int num, string name,char sex);
};
class Student1 : protected Student
{
private:
int age;
string addr;
public:
void display_1();
void setval(int num, string name,char sex,int age, string
addr);
};
void Student1::display_1()
{
cout<<"num:"<<num<<endl;
cout<<"name:"<<name<<endl;
cout<<"sex:"<<sex<<endl;
// display();
cout<<"age:"<<age<<endl;
cout<<"address:"<<addr<<endl;
}
void Student::display()
{
cout<<"num:"<<num<<endl;
cout<<"name:"<<name<<endl;
cout<<"sex:"<<sex<<endl;
}
void Student::setval(int num, string name,char sex)
{
this->num = num;
this->name = name;
this->sex = sex;
}
void Student1::setval(int num, string name,char sex,int age,
string addr)
{
Student::setval(num,name,sex);
this->age = age;
this->addr = addr;
}
int main()
{
Student1 st1;
// st1.Student::setval(10000,"gavin",'f');
st1.setval(10000,"gavin",'f',12,"nupt");
// st1.display();
//调用基类公有函数
return 0;
}
或者
#include< iostream >
#include< string >
using namespace std;
//例,显示学生完整情况
class Student
{
protected:
int num;
string name;
char sex;
public:
void display();
void setval(int num, string name,char sex);
};
class Student1 : protected Student
{
private:
int age;
string addr;
public:
void display_1();
void setval(int num, string name,char sex,int age, string
addr);
};
void Student1::display_1()
{
// cout<<"num:"<<num<<endl;
// cout<<"name:"<<name<<endl;
// cout<<"sex:"<<sex<<endl;
display();
cout<<"age:"<<age<<endl;
cout<<"address:"<<addr<<endl;
}
void Student::display()
{
cout<<"num:"<<num<<endl;
cout<<"name:"<<name<<endl;
cout<<"sex:"<<sex<<endl;
}
void Student::setval(int num, string name,char sex)
{
this->num = num;
this->name = name;
this->sex = sex;
}
void Student1::setval(int num, string name,char sex,int age,
string addr)
{
Student::setval(num,name,sex);
this->age = age;
this->addr = addr;
}
int main()
{
Student1 st1;
// st1.Student::setval(10000,"gavin",'f');
st1.setval(10000,"gavin",'f',12,"nupt");
// st1.display();
//调用基类公有函数
return 0;
}