Discussion:Langage C++/Syntaxe C++

Une page de Wikiversité.
Sauter à la navigation Sauter à la recherche

Salut,

je trouve inadéquat le terme de méthode pour regrouper les notions de fonctions, procédures et méthodes. Ce terme, AMHA, est à réserver de préférence à la partie objet de c++. Il n'y a pas à proprement parler de procédure en c/c++, tout y est fonction. Dire que l’on peut implémenter une procédure par la voie d'une fonction ne retournant rien (void) me semble plus juste. Une méthode est par exemple une fonction dont le prototype est déclaré dans une classe, et qui admet un paramètre par défaut (qui n'apparaît jamais) et qui est un pointeur sur l’objet instancié.


Quant au fait de devoir lire les instructions de droite à gauche, c’est en partie faux et cela dépend de :

  • des opérateurs mis en jeu
  • de leur priorité
  • de leur associativité


Les opérateurs se lisant de droite à gauche sont

  • tous les opérateurs d'assignation (ils ont une priorité relativement faible)
  • négation booléenne, complément bit à bit (~), les pré incréments et décrément, le + et - unaire, la déréférence, le cast, la référence, et l'opérateur taille.

Tous les autres opérateurs se lisent de gauche à droite (sauf :: qui a la priorité la plus élevée) Mais cette remarque concerne plus le chapitre précédent.

Entièrement d'accord avec ce qu’il y a au dessus ! Attention aux termes.
PiFou
Le terme de méthode est très approprié au C++ étant donné que le C++ est un langage à objets.
nb: Création du C++ en reprenant la syntaxe du C, en l'améliorant pour la programmation objet.
nb: Il est possible de faire de la programmation orienté objet en C pur.
nb: Il n'y a pas de différence de syntaxe entre la procédure et la fonction en C et C++, donc le terme de méthode se justifie.
<Type> [<Portée>::]<NomMéthode>([<Type> <NomParamètres>[ = ValeurParDefaut]])[ = 0; | {<Code>;}])
void étant un typedef car sinon on ne pourais pas l’utiliser comme type de retour.
Ensuite pour ce qui est du sens de lecture des instructions ne pas oublier que les déclarations de variables et de paramètres sont des ensembles d'opérateurs (ou instructions). Le fait que "[]" soit prioritaire à "*" dans la lecture de l'instruction est une notion très importante qui évite bien des erreurs de compréhension du code lors d'un reverse engineering sur un code non documenté.
Ppignol