Bonjour. 11:00 : Pourquoi ecrit-on "int getNumerator() const;" et non "const int getNumerator();" ? (Je vois bien que la 1ere solution échoue ensuite dans l'utilisation du tuto suivant de redefinition d'operateur mais je ne comprend pas pourquoi)
@DominiqueLiard067 жыл бұрын
Bonjour. * const int getNumerator() : indique que le type de retour de la fonction est un const int. Durant l’exécution de la méthode getNumerator, this (l'objet courant) peut être modifié (ce qui à priori, ne devrait pas être le cas) car il n'est pas bloqué. *int getNumerator() const : indique que la fonction renvoie un entier (le numérateur) par copie. Par contre, on garanti que durant son exécution, l'objet courant (this) restera inchangé. Pour faire simple, dans l'exemple suivant la première ligne de la méthode ne compilera pas. int Rational::getNumerator() const { this->numerator++; // ne compile pas return this->numerator; } * De plus, l'opérateur
@arnaudsourdrille23664 жыл бұрын
C’est très clair !
@moussakcoulibaly16215 жыл бұрын
merci beaucoup
@mehidimohammed94677 жыл бұрын
salut , jai 2 qst , sa sert a quoi l’instruction const , et le pointeur this et merci
@DominiqueLiard067 жыл бұрын
+MEHIDI Mohammed Bonjour. Const permet de déclarer une constante. this représente l'objet sur lequel une méthode est invoquée.
@pkeyela6 жыл бұрын
Merci beaucoup pour vos explications!! J'ai eu une erreur lors de la compilation: "undefined reference to.." Voyez un peu le message: -------------- Clean: Debug in Encapsulation (compiler: GNU GCC Compiler)--------------- Cleaned "Encapsulation - Debug" -------------- Build: Debug in Encapsulation (compiler: GNU GCC Compiler)--------------- mingw32-g++.exe -Wall -fexceptions -g -finput-charset=CP1251 -fexec-charset=CP866 -c "D:\SVT\Programmation\prog c++\Encapsulation\main.cpp" -o obj\Debug\main.o mingw32-g++.exe -o bin\Debug\Encapsulation.exe obj\Debug\main.o -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32 "C:\Program Files\CodeBlocks\MinGW\lib\libbgi.a" obj\Debug\main.o: In function `main': D:/SVT/Programmation/prog c++/Encapsulation/main.cpp:9: undefined reference to `Rational::setNumerator(int)' D:/SVT/Programmation/prog c++/Encapsulation/main.cpp:10: undefined reference to `Rational::setDenominator(int)' D:/SVT/Programmation/prog c++/Encapsulation/main.cpp:11: undefined reference to `Rational::getNumerator() const' D:/SVT/Programmation/prog c++/Encapsulation/main.cpp:11: undefined reference to `Rational::getDenominator() const' D:/SVT/Programmation/prog c++/Encapsulation/main.cpp:13: undefined reference to `Rational::getDenominator() const' D:/SVT/Programmation/prog c++/Encapsulation/main.cpp:13: undefined reference to `Rational::getNumerator() const' collect2.exe: error: ld returned 1 exit status Process terminated with status 1 (0 minute(s), 2 second(s)) 7 error(s), 0 warning(s) (0 minute(s), 2 second(s)) ************************** Voici le code /*main.cpp*/ #include using namespace std; #include "Rational.h" int main() { Rational myRat; myRat.setNumerator(1); myRat.setDenominator(2); double rat = myRat.getNumerator()/myRat.getDenominator(); cout