// Motore.cpp
/* In questo esempio viene mostrato l'ordine di esecuzione dei vari costruttori e distruttori. Il costruttore e il distruttore della classe più interna (motore) vengono eseguiti prima della classe esterna (automobile). */
#include <iostream>
using namespace std;class Motore
{
int cilindri;
public:
Motore(int c = 4);
~Motore();};
Motore::Motore(int c)
{
cilindri = c;
cout << "+Motore " << cilindri << endl;}
Motore::~Motore()
{
cout << "-Motore " << cilindri << endl;
}
class Automobile
{
Motore m;
int ruote;
public:
Automobile(int r = 4);
~Automobile();};
Automobile::Automobile(int r)
{
ruote = r;
cout << "+Automobile " << ruote << endl;}
Automobile::~Automobile()
{
cout << "-Automobile " << ruote << endl;
}
int main()
{Automobile car(4);
}