exam8.cpp

来自「C++语言程序设计题典」· C++ 代码 · 共 76 行

CPP
76
字号
#include <iostream.h>
#include <string.h>
class base   //基类
{
	char *name;    //姓名
	int age;       //年龄
public:
	base() {}
	void setname(char na[])
	{
		name=new char[strlen(na)+1];
		strcpy(name,na);
	}
	void setage(int a)
	{
		age=a;
	}
	char *getname() { return name; }
	int getage() { return age; }
};
class leader:virtual public base   //领导类
{
	char *job;    //职务
    char *dep;    //部门
public:
	leader() {}
	void setjob(char jb[])
	{
		job=new char[strlen(jb)+1];
		strcpy(job,jb);
	}
	void setdep(char dp[])
	{
		dep=new char[strlen(dp)+1];
		strcpy(dep,dp);
	}
	char *getjob() { return job; }
	char *getdep() { return dep; }
};
class engineer:virtual public base   //工程师类
{
	char *major;   //专业
    char *prof;    //职称
public:
	engineer() {}
	void setmajor(char maj[])
	{
		major=new char[strlen(maj)+1];
		strcpy(major,maj);
	}
	void setprof(char pf[])
	{
		prof=new char[strlen(pf)+1];
		strcpy(prof,pf);
	}
	char *getmajor() { return major; }
	char *getprof() { return prof; }
};
class chairman:public leader,public engineer   //主任工程师类
{};
void main()
{
	chairman c;
	c.setname("李明");
	c.setage(42);
	c.setjob("处长");
	c.setdep("设计处");
	c.setmajor("电站锅炉设计");
	c.setprof("高级工程师");
	cout << "输出结果:" << endl;
    cout << "    " << c.getname() << ",年龄" << c.getage() 
		<< "岁,担任" << c.getdep() << c.getjob() << "," << endl;
	cout << "    " << c.getprof() << ",从事" << c.getmajor() 
		<< "专业" << "。" << endl;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?