#include <iostream> // `cin', `cout' et `cerr'.

using namespace std ;

class Objet {
	string nom_ ;
	int nombre_ ;
public :
	void fixer_nom(const string & arg) { nom_ = arg ; }
	void fixer_nombre(const int & arg) { nombre_ = arg ; }
	const string & nom() const { return nom_ ; }
	const int & nombre() const { return nombre_ ; }
} ;
int
main()
{
	 // Appel du constructeur par défaut, offert par le compilateur.
	Objet mon_objet ;
	cout << "Nom = `" << mon_objet.nom() << '\'' << endl ;
	cout << "Nombre = " << mon_objet.nombre() << endl ;
	mon_objet.fixer_nom("Keynes") ;
	mon_objet.fixer_nombre(99) ;
	cout << "Nom = `" << mon_objet.nom() << '\'' << endl ;
	cout << "Nombre = " << mon_objet.nombre() << endl ;
	// Appel du constructeur de copie, offert par le compilateur.
	Objet autre_objet(mon_objet) ;
	cout << "Nom = `" << autre_objet.nom() << '\'' << endl ;
	cout << "Nombre = " << autre_objet.nombre() << endl ;
	// Appel de l'opération d'affectation, offerte par le compilateur.
	Objet encore_un_autre_objet ;
	encore_un_autre_objet = mon_objet ;
	cout << "Nom = `" << encore_un_autre_objet.nom() << '\'' << endl ;
	cout << "Nombre = " << encore_un_autre_objet.nombre() << endl ;

	return 0 ; // Retour au système d'exploitation avec le code `0'.
}