多继承示例:
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
/*
多继承:
要求:Farmer类 数据成员:m_strName;成员函数:构造函数、析构函数、sow();
Worker类 数据成员:m_srCore;成员函数:构造函数、析构函数、carry();
Migrantworker类:数据成员:无;成员函数:构造函数、析构函数
*/
class Farmer
{
public:
Farmer(string name = "jack");
virtual ~Farmer();
void sow();
protected:
string m_strName;
};
Farmer::Farmer(string name)
{
m_strName = name;
cout << "Farmer()" <<endl;
}
Farmer::~Farmer()
{
cout << "~Farmer()" << endl;
}
void Farmer::sow()
{
cout << m_strName << endl;
cout << "Farmer-sow()" << endl;
}
class Worker
{
public:
Worker(string code = "001");
virtual ~Worker();
void carry();
protected:
string m_strCode;
};
Worker::Worker(string code)
{
m_strCode = code;
cout << "Worker()" << endl;
}
Worker::~Worker()
{
cout << "~Worker()" << endl;
}
void Worker::carry()
{
cout << m_strCode << endl;
cout << "Worker-carry()" << endl;
}
class Migrantworker : public Farmer, public Worker
{
public:
Migrantworker(string name, string code);
~Migrantworker();
};
Migrantworker::Migrantworker(string name, string code) : Farmer(name), Worker(code)
{
cout << "Migrantworker()" << endl;
}
Migrantworker::~Migrantworker()
{
cout << "Migrantworker()" << endl;
};
int main(void)
{
Migrantworker *p = new Migrantworker("jerry", "100");
p->carry();
p->sow();
delete p;
p=NULL;
system("pause");
return 0;
}
打印结果: