Utilisateur:Mohamedsanoussi
Exercice
:
Considérons la définition suivante de la classe myClass :
class myClass {
private:
int x;
static int count;
public:
void setX(int a);
//Fonction pour définir la valeur de x.
//Postcondition: x = a;
void printX();
//Fonction pour afficher x.
static void printCount();
//Fonction pour afficher count.
static void incrementCount();
//Fonction pour incrémenter count.
//Postcondition: count++;
myClass(int a = 0);
//constructeur avec des paramètres par défaut
//Postcondition x = a;
//Si aucune valeur n’est spécifié pour a, x = 0;
};
a. Écrire une instruction C ++ qui initialise la variable membre count à 0.
b. Ecrire une instruction C ++ qui augmente la valeur de count par 1.
c. Ecrire une instruction C ++ qui affiche la valeur de count.
d. Ecrire les définitions des fonctions de la classe myClass comme décrit dans sa déclaration.
e. Écrire une instruction C ++ qui déclare myObject1 à être un objet de myClass et initialise
sa variable membre x à 5.
f. Écrire une instruction C ++ qui déclare myObject2 à être un objet de myClass et initialise
sa variable membre x à 7.
g. Lesquelles des instructions suivantes sont valables ? (Supposons que myObject1 et
myObject2 sont tels que déclarés dans les parties e) et f).
myObject1.printCount (); //Ligne 1
myObject1.printX (); //Ligne 2
myClass.printCount (); // Ligne 3
myClass.printX (); // Ligne 4
myClass :: count ++; // Ligne 5
h. Supposons que myObject1 et myObject2 sont tels que déclarés dans les parties e) et f).
Quelle est la sortie du code C ++ suivant ?
myObject1.printX ();
cout << endl;
myObject1.incrementCount ();
myClass :: incrementCount ();
myObject1.printCount ();
cout << endl;
myObject2.printCount ();
cout << endl;
myObject2.printX ();
cout << endl;
myObject1.setX (14);
myObject1.incrementCount ();
myObject1.printX ();
cout << endl;
myObject1.printCount ();
cout << endl;
myObject2.printCount ();cout << endl;