Built with from Grav and Hugo
1- Quel est le terme C++ permettant de désigner les “méthodes” d’une classe ?
2- Supposons une classe Cercle disposant d’un attribut _points de type std::vector<point>. Quel invariant cette classe pourrait-elle décider d’enforcer ?
Cercle
_points
std::vector<point>
3- Citez une règle permettant de respecter le principe d’encapsulation en C++.
4- En quoi consiste la méthodologie TDD ?
5- Donnez un avantage de cette pratique.
6- Quel est le nom de la fonctionnalité permettant d’initialiser un attribut sur la même ligne que sa définition ?
7- Quel nom donne-t-on au constructeur d’une classe acceptant 0 paramètre ?
8- Dans un constructeur, comment s’appelle la zone dans laquelle on initialise les attributs de la classe ?
9- A quoi fait-on généralement référence lorsque l’on parle d’implémentation par défaut ?
10- Supposons une fonction-membre bool hello() const définie dans une classe Greetings. Que faut-il faire pour l’implémenter dans un .cpp séparé ?
bool hello() const
Greetings
11- Soit un attribut statique déclaré par static float _attr dans une classe UneClasse. Comment faut-il faire pour le définir ?
static float _attr
UneClasse
12- La ligne static int Toto::fcn_static() { return 1; } placée dans un fichier Toto.cpp ne compile pas. Pourtant, fcn_static a été déclarée comme il faut dans la classe Toto et l’include a été fait. Quel est le problème ?
static int Toto::fcn_static() { return 1; }
Toto.cpp
fcn_static
Toto
13- Donnez la signature de l’opérateur << permettant d’afficher le contenu une variable de type Cat dans un flux de sortie.
<<
Cat
14- Quelle instruction permet de définir un alias SmallerName sur le type suivant : std::unique_ptr<std::array<std::string, 3>>
SmallerName
std::unique_ptr<std::array<std::string, 3>>
Les deux prochaines questions font référence à cette classe :
class Toto { public: Toto() : Toto(3), _value2(5) {} Toto(int v1) : _value1(v1) {} private: int _value1; int _value2; }
15- Ce code ne compile pas pour deux raisons. Quelles sont-elles ?
16- Essayez d’identifier un autre problème lié au constructeur à 1 paramètre. Il ne s’agit pas d’un problème de compilation.