运动员
游泳人 跑步人 自行车人
铁人三项
#pragma warning(disable : 4996)
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
struct Athlete
{
public:
Athlete();
~Athlete();
};
Athlete::Athlete()
{
cout << "Athlete Constructor" << endl;
}
Athlete::~Athlete()
{
cout << "Athlete Destructor" << endl;
}
struct Swimmer: virtual Athlete
{
public:
Swimmer();
~Swimmer();
};
Swimmer::Swimmer()
{
cout << "Swimmer Constructor" << endl;
}
Swimmer::~Swimmer()
{
cout << "Swimmer Destructor" << endl;
}
struct Runner :virtual Athlete
{
public:
Runner();
~Runner();
};
Runner::Runner()
{
cout << "Runner Constructor" << endl;
}
Runner::~Runner()
{
cout << "Runner Destructor" << endl;
}
struct Cyclist : virtual Athlete
{
Cyclist();
~Cyclist();
};
Cyclist::Cyclist()
{
cout << "Cyclist Constructor" << endl;
}
Cyclist::~Cyclist()
{
cout << "Cyclist Destructor" << endl;
}
struct Triathlete :Swimmer, Runner, Cyclist
{
public:
Triathlete();
~Triathlete();
};
Triathlete::Triathlete()
{
cout << "Triathlete Constructor" << endl;
}
Triathlete::~Triathlete()
{
cout << "Triathlete Destructor" << endl;
}
int main()
{
Triathlete T{};
cout << "\n....Doing work....\n\n";
return 0;
}