//在封装一个领导类(Leader):包括受保护成员:岗位、工资,完成其相关函数及show
//由以上两个类共同把派生出学生干部类:引入私有成员:管辖人数,完成其相关函数以及show函数
//在主程序中,测试学生干部类:无参构造、有参构造、拷贝构造、拷贝赋值、show
inhetr.cpp
//在封装一个领导类(Leader):包括受保护成员:岗位、工资,完成其相关函数及show
//由以上两个类共同把派生出学生干部类:引入私有成员:管辖人数,完成其相关函数以及show函数
//在主程序中,测试学生干部类:无参构造、有参构造、拷贝构造、拷贝赋值、show
#include <iostream>
using namespace std;
class student
{
private:
double score; //设置分数为私有
protected:
string name; //设置姓名为受保护的
int age; //设置年龄为受保护的
public:
student(){cout<<"无参构造函数"<<endl;} //无参构造函数
student(double s,string n,int a):score(s),name(n),age(a){cout<<"有参构造函数"<<endl;} //有参构造函数
student(const student& s):score(s.score),name(s.name),age(s.age){cout<<"拷贝构造函数"<<endl;} //拷贝构造函数
student& operator=(const student &s) //拷贝赋值函数
{
if(this!=&s)
{
this->score=s.score;
this->name=s.name;//封装一个学生类(Student):包括受保护成员:姓名、年龄、分数,完成其相关函数,以及show
this->age=s.age;
}
cout<<"拷贝赋值函数"<<endl;
return *this;
}
~student(){cout<<"析构函数"<<endl;}//析构函数
void show()
{
cout<<"score="<<score<<endl;
cout<<"name="<<name<<endl;
cout<<"age="<<age<<endl;
}
};
//在封装一个领导类(Leader):包括受保护成员:岗位、工资,完成其相关函数及show
class leader
{
private:
double sala; //设置工资为私有
protected:
string poai; //设置职位为受保护的
public:
leader(){cout<<"无参构造函数"<<endl;} //无参构造函数
leader(double s,string n):sala(s),poai(n){cout<<"有参构造函数"<<endl;} //有参构造函数
leader(const leader& s):sala(s.sala),poai(s.poai){cout<<"拷贝构造函数"<<endl;} //拷贝构造函数
leader& operator==(const leader &s) //拷贝赋值函数
{
if(this!=&s)
{
this->sala=s.sala;
this->poai=s.poai;
}
cout<<"拷贝赋值函数"<<endl;
return *this;
}
~leader(){cout<<"析构函数"<<endl;}//析构函数
void show()
{
cout<<"sala="<<sala<<endl;
cout<<"poai="<<poai<<endl;
}
};
//由以上两个类(学生类(Student,领导类(Leader)共同把派生出学生干部类:引入私有成员:管辖人数,完成其相关函数以及show函数
class cad:public student,public leader
{
private:
int num; //管辖认识
public:
cad(){cout<<"无参构造函数"<<endl;} //无参构造函数
cad(double d,string t,int a,double s,string n,int m):student(d,t,a),leader(s,n),num(m)//有参构造函数
{
cout<<"有参构造函数"<<endl;
}
cad(const cad& c):student(c),leader(c),num(c.num)//拷贝构造函数
{
cout<<"拷贝构造函数"<<endl;
}
cad& operator=(const cad& c) //拷贝赋值函数
{
if(this!=&c)
{
this->num=c.num;
student::operator=(c);
leader::operator=(c);
}
cout<<"拷贝赋值函数"<<endl;
return *this;
}
~cad(){cout<<"析构函数"<<endl;}//析构函数
void show()
{
student::show();
leader::show();
cout<<"num="<<num<<endl;
}
};
//在主程序中,测试学生干部类:无参构造、有参构造、拷贝构造、拷贝赋值、show
int main()
{
//无参构造
cad m;
m.show();
//有参构造
cad m1(99.5,"zhang",18,3000.5,"banzhang",40);
m1.show();
//拷贝构造
cad m2(m1);
m2.show();
//拷贝赋值函数
m=m2;
m.show();
return 0;
}
main.cpp
//在封装一个领导类(Leader):包括受保护成员:岗位、工资,完成其相关函数及show
//由以上两个类共同把派生出学生干部类:引入私有成员:管辖人数,完成其相关函数以及show函数
//在主程序中,测试学生干部类:无参构造、有参构造、拷贝构造、拷贝赋值、show
#include <iostream>
#include<inhetr.h>
using namespace std;
//在主程序中,测试学生干部类:无参构造、有参构造、拷贝构造、拷贝赋值、show
int main()
{
//无参构造
cad m;
m.show();
//有参构造
cad m1(99.5,"zhang",18,3000.5,"banzhang",40);
m1.show();
//拷贝构造
cad m2(m1);
m2.show();
//拷贝赋值函数
m=m2;
m.show();
return 0;
}
inhetr.h
#include <iostream>
#ifndef INHETR_H
#define INHETR_H
using namespace std;
//封装一个学生类(Student):包括受保护成员:姓名、年龄、分数,完成其相关函数,以及show
class student
{
private:
double score; //设置分数为私有
protected:
string name; //设置姓名为受保护的
int age; //设置年龄为受保护的
public:
student(); //无参构造函数
student(double s,string n,int a); //有参构造函数
student(const student& s); //拷贝构造函数
student& operator=(const student &s); //拷贝赋值函数
~student();//析构函数
void show();
};
//在封装一个领导类(Leader):包括受保护成员:岗位、工资,完成其相关函数及show
class leader
{
private:
double sala; //设置工资为私有
protected:
string poai; //设置职位为受保护的
public:
leader(); //无参构造函数
leader(double s,string n);//有参构造函数
leader(const leader& s); //拷贝构造函数
leader& operator==(const leader &s) ; //拷贝赋值函数
~leader();//析构函数
void show();
};
//由以上两个类(学生类(Student,领导类(Leader)共同把派生出学生干部类:引入私有成员:管辖人数,完成其相关函数以及show函数
class cad:public student,public leader
{
private:
int num; //管辖认识
public:
cad(); //无参构造函数
cad(double d,string t,int a,double s,string n,int m);//有参构造函数
cad(const cad& c);//拷贝构造函数
cad& operator=(const cad& c); //拷贝赋值函数
~cad();//析构函数
void show();
};
#endif // INHETR_H
运行结果