// 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);

}