65,182
社区成员




#include <iostream>
using namespace std;
class base{
protected:
string name, sex;
int age;
public:
base(string nam, string se, int a){name = nam; sex = se; age = a;}
void Setname(){cin >> name;}
void Setsex(){cin >> sex;}
void Setage(){cin >> age;}
void showbase();
};
void base::showbase(){
cout << "姓名:" << name << endl;
cout << "性别:" << sex << endl;
cout << "年龄:" << age << endl;
}
class teacher: virtual public base{
private:
string profession;
string teanum;
protected:
int salary;
public:
teacher(string nam, string se, int a, string pro, string tnum, int s):base(nam, se, a){profession = pro; teanum = tnum; salary = s;}
void Setprofession(){cin >> profession;}
void Setteanum(){cin >> teanum;}
void Setsalary(){cin >> salary;}
void showteacher();
};
void teacher::showteacher(){
showbase();
cout << "工号:" << teanum << endl;
cout << "职称:" << profession << endl;
cout << "薪水:" << salary << endl;
}
class student: virtual public base{
protected:
string stunum;
string cla;
string major;
int score;
public:
student(string nam, string se, int a, string snum, string cl, string m, int s):base(nam, se, a){stunum = snum; cla = cl; major = m; score = s;}
void Setstunum(){cin >> stunum;}
void Setcla(){cin >> cla;}
void Setmajor(){cin >> major;}
void Setscore(){cin >> score;}
void showstudent();
};
void student::showstudent(){
showbase();
cout << "学号:" << stunum << endl;
cout << "班级:" << cla << endl;
cout << "专业:" << major << endl;
cout << "分数:" << score << endl;
}
class master: public teacher, public student{
protected:
string company;
public:
master(string nam1, string se1, int a1, string snum, string cl, string m, int s, string nam2, string se2, int a2, string pro, string tnum, int sa, string com)
:teacher(nam2, se2, a2, pro, tnum, sa), student(nam1, se1, a1, snum, cl, m, s) {company = com;}
};
int main()
{
...
}
#include <iostream>
#include <typeinfo>
#include <iostream>
#include <string>
using namespace std;
struct Base {
int m;
Base(int b):m(b) {
}
};
struct ch :public Base {
int x;
ch(int a):x(a),Base(a){}
};
struct bh :public Base {
int z;
bh(int a):z(a),Base(a-1){}
};
struct dh :public ch, public bh
{
dh(int x):ch(x),bh(x){}
};
int main()
{
dh d1(10);
Base* x = static_cast<Base *>(static_cast<ch *>(&d1));
Base* x1 = static_cast<Base *>(static_cast<bh *>(&d1));
cout << x->m << endl;
cout << x1->m << endl;
}