Académique Documents
Professionnel Documents
Culture Documents
un constructeur porte le même nom que la classe dans laquelle il est défini
un constructeur n'a pas de type de retour (même pas void)
un constructeur peut avoir des arguments
la définition d'un constructeur n'est pas obligatoire lorsqu'il n'est pas nécessaire
Le destructeur est une fonction membre dont la définition ressemble étrangement à celle du
constructeur, hormis le fait que le nom du destructeur est précédé d'un tilde (~), et qu'il ne
possède aucun argument.
un destructeur porte le même nom que la classe dans laquelle il est défini et est précédé
d'un tilde
un destructeur n'a pas de type de retour (même pas void)
un destructeur ne peut pas avoir d'argument
la définition d'un destructeur n'est pas obligatoire lorsque celui-ci n'est pas
nécessaire
L’héritage est une technique extrêmement efficace pour créer des classes plus spécialisées,
appelées sous-classes, à partir de classes plus générales déjà existantes, appelées super-
classes. Elle représente la relation «est-un»
3 . Quelle est la différence entre les trois mots clés de droit d'accès : public, private et
protected ? (2 pts)
Commenter les instructions des trois fonctions (main(),fa(),fb()) par "Ok" ou "Interdit"
class A { z = 1; //OK }
private : int x; int main() {
protected : int y; A a; //OK
public : int z ; B b; //OK
void fa( ); a.x = 1; //Interdit
}; a.y = 1; //Interdit
class B : private A { a.z = 1; //OK
public : void fb( ); a.fa( ) ; //OK b.x = 1; //Interdit (0.5pts
}; pour les deux instructions)
void A :: fa ( ) b.y = 1; //Interdit
{x = 1; //OK b.z = 1; //Interdit
y = 1; //OK b.fa( ) ; //Interdit
z = 1; //OK } b.fb( ) ; //OK
}
void B :: fb () {x = 1; // Interdit
y = 1; //OK
1. Définir une classe Rectangle ayant les attributs suivants : Longueur et Largeur. (1pt)
2. Ajouter un constructeur d’initialisation. (1pt)
3. Définir les accesseurs aux attributs de la classe. (1pt)
4. Ajouter les méthodes suivantes : (3pt)
- périmètre ( ) : retourne le périmètre du rectangle.
class
Rectangl
e
{
Private:
double longueur, largeur;
Public:
double getLargeur() { return largeur; }
void setLargeur(double value) { largeur = value; }
int EstCarre()
{
if (longueur == largeur)
{
return 1;
}
else
{
return 0;
}
}
double Surface()
{
return longueur * largeur;
}
double Perimetre()
{
return 2 * (longueur + largeur);
}
}