Ajout d'une explication pour l'exemple des test interfaces inimplémentables.

This commit is contained in:
Mysaa 2022-08-12 15:48:02 +02:00
parent 1cc3b461d9
commit f36103f0e8
Signed by: Mysaa
GPG Key ID: 7054D5D6A90F084F

View File

@ -340,7 +340,12 @@
\end{fjlisting}
\end{tabular}
\end{center}
%TODO Ajouter une courte explication de pourquoi
\underline{La première} parce que la relation de sous-typage et transitive est antisymétrique
\underline{La seconde} parce que si \fj{B} a un attribut de type \fj{A}, alors \fj{C} en hérite, et ne peut pas être construit sans attributs.
\underline{La troisième} comme la précédente, \fj{C} doit avoir par héritange un attribut nommé \fj{f}
\caption{Exemples de \textit{test interfaces} implémentés par aucune \textit{class table}}
\label{fig:tiUnsolvable}
\end{figure}
@ -707,10 +712,14 @@
\begin{fjlisting}
\fjclass{Int}{}{
\fjmethod{Bool}{isZero}{}{true}
\fjmethod{Bool}{gt}{Int other}{false}
\fjmethod{Bool}{lt}{Int other}{other.isZero().ite(false,true)}
}\\
\fjclass{SInt}{\fjattr[Int]{prec}}{
\fjmethod{Bool}{isZero}{}{false}
}
\fjmethod{Bool}{gt}{Int other}{other.isZero().ite(true,this.prec.gt(((SInt)other).prec))}
\fjmethod{Bool}{lt}{Int other}{other.isZero().ite(false,this.prec.lt(((SInt)other).prec))}
}
\end{fjlisting}
On ajoute aussi la notation des nombres :