继承,派生,改错
#include<iostream>
#include<cstring>
using namespace std;
class worker
{
public:
worker(char name[],int age)
{
strcpy(n,name);
a=age;
}
void disp(){cout<<n<<" "<<a<<endl;}
private:
char n[10];
int a;
};
class leader:virtual public worker
{
public:
leader(char section[],char position[],char name[],int age):n(name),a(age)
{
strcpy(s,section);
strcpy(p,position);
}
void disp1(){cout<<s<<" "<<p<<endl;}
private:
char s[20],p[20];
worker n[10],a;
};
class engineer:virtual public worker
{
public:
engineer(char major[],char title[],char name[],int age):n(name),a(age)
{
strcpy(m,major);
strcpy(t,title);
}
void disp2(){cout<<m<<" "<<t<<endl;}
private:
char m[20],t[20];
worker n[10],a;
};
class chairman:public engineer,public leader
{
public:
chairman(char pay,char section[],char position[],char major[],char title[],char name[],int age):n(name),a(age),s(section),p(position),m(major),t(title)
{
p1=pay;
}
void disp3()
{
disp();
disp1();
disp2();
cout<<p<<endl
}
private:
int p1;
worker n[10],a;
leader s[20],p[20];
engineer m[20],t[20];
};
void main()
{
chairman c(3000,"财务部","财务经理","财会","经理","长孙",39);
c.disp3();
}
[解决办法]
- C/C++ code
#include<iostream>#include<cstring>using namespace std;class worker{public: worker(char name[],int age) { strcpy(n,name); a=age; } void disp(){cout<<n<<" "<<a<<endl;}private: char n[10]; int a;};class leader:virtual public worker{public: leader(char section[],char position[],char name[],int age):worker(name,age) { strcpy(s,section); strcpy(p,position); } void disp1(){cout<<s<<" "<<p<<endl;}private: char s[20],p[20];// worker n[10],a;};class engineer:virtual public worker{public: engineer(char major[],char title[],char name[],int age):worker(name,age) { strcpy(m,major); strcpy(t,title); } void disp2(){cout<<m<<" "<<t<<endl;}private: char m[20],t[20];// worker n[10],a;};class chairman:public engineer,public leader{public: chairman(int pay,char section[],char position[],char major[],char title[],char name[],int age):engineer(major,title,name,age),leader(section,position,name,age),worker(name,age) { p1=pay; } void disp3() { disp(); disp1(); disp2(); cout<<p1<<endl; }private: int p1;// worker n[10],a;// leader s[20],p[20];// engineer m[20],t[20];};void main(){ chairman c(3000,"财务部","财务经理","财会","经理","长孙",39); c.disp3();}