3.2.2 La classe Crustace

Nous avons dit que Curstace allait avoir un nom, que nous allons mettre en attribut privé.

Voici le contenu du fichier custace.h :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef CRUSTACE_H
#define CRUSTACE_H

#include <iostream>
#include <string>


class Crustace {
	public:
		Crustace(const std::string & nom = "crustacé");   //constructeur
		Crustace(const Crustace & crustace); /*constructeur de copie*/
		~Crustace();   //destructeur
		
		//définition de l'opérateur =
		Crustace & operator = (const Crustace & crustace);
		
	protected:
		void initCustace(const std::string & nom); //initialisation
		std::string p_nom;
};
#endif

Voici le contenu du fichier custace.cpp :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "crustace.h"

using namespace std;

Crustace::Crustace(const string & nom){
	cout << "constructeur de Crustace" << endl;
	this->initCustace(nom);
}

Crustace::Crustace(const Crustace & crustace){
	cout << "constructeur de copie de Crustace" << endl;
	this->initCustace(crustace.p_nom);
}

Crustace::~Crustace(){
	cout << "destructeur de Crustace" << endl;
}

Crustace & Crustace::operator = (const Crustace & crustace){
	this->initCustace(crustace.p_nom);
	return *this;
}

void Crustace::initCustace(const string & nom){
	p_nom = nom;
}

Nous allons écrire les appels aux constructeurs et au destructeur (ça servira pour la suite).