le second const signifie que l'on peut appeler la fonction même sur une instance constante de la classe ;)
les deux notations throw() et const en fin de signature pour une fonction membre peuvent être utiliser dans n'importe quelle classes...
et throw() peut même être utilisée sur n'importe quelle fonction (membre d'une classe ou non)
cependant, attention :
une fonction membre déclarée const NE DOIT PAS (et normalement ne peut pas : erreur à la compilation) modifier l'instance de la classe, ce qui est logique ;)
De plus, si jamais une fonction désigné comme sans exceptions avec throw() se retrouve à être traversée lors d'une levée d'exception (c'est-à-dire si jamais la fonction, ou une des fonctions qu'elle appelle étaient amenées à lever une exception), l'exception serait catchée et une exception std::bad_exception serait levée.
il me semble également qu'il existe une autre syntaxe pour throw() qui est de la forme :
et qui précise les exceptions que PEUT lever une fonction... ici encore, si une exception non prévue est levée, elle sera remplacée par une std::bad_exception...Code:RETOUR fonction(type1 var1, type2 var2, .....) throw(exception1, exception2, exception3, .......);