Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Regles de nommage : quand une variable est une fonction...

13 réponses
Avatar
Fabien LE LEZ
Bonjour,

J'écris les noms de variable ainsi : "une_variable".
Les noms de fonctions (et de types) s'écrivent avec des majuscules :
"UneFonction".

Ainsi, j'écrirais :

void UneFonction (int une_variable);


Mais que dois-je faire quand une variable est une fonction ou un
foncteur ?

template <class Foncteur> void QuaranteDeux (Foncteur const& machin)
// "machin" en minuscules, car c'est un nom de variable
{
machin (42); // ... sauf qu'ici c'est une fonction !
}

QuaranteDeux (UneFonction);
// ... et ici la variable passée en paramètre est en majuscules :-/

Comment gérez-vous ce cas ?

Merci d'avance.

3 réponses

1 2
Avatar
Fabien LE LEZ
On Wed, 17 Jan 2007 13:49:08 +0100, Michel Decima :

Les noms variables et de fonctions s'ecrivent alors pareil


Histoire de simplifier le problème, n'oublions pas les cas où la
frontière entre fonction et type est floue.

Le constructeur d'une classe est une fonction qui a forcément le nom
de la classe.

De même, je me retrouve parfois avec une fonction libre transformée en
le constructeur d'une classe.

Prenons par exemple une fonction qui renvoie un int :

int CalculeLeMachin (std::string const&);

Le code évoluant, je m'aperçois que cette fonction doit maintenant
renvoyer un int, un double, et un vector<int>.

Je pourrais donc créer une classe "Retour_de_CalculeLeMachin", mais ça
fait un nom de plus, et c'est assez lourd à l'usage :

Retour_de_CalculeLeMachin x= CalculeLeMachin ("quarante-deux");

Je préfère mettre la fonction libre comme constructeur de la classe :

struct CalculeLeMachin
{
int truc;
double bidule;
std::vector<int> un_zoli_tableau;
CalculeLeMachin (std::string const&);
};

ce qui donne un truc plus simple pour l'utilisateur :

CalculeLeMachin x ("quarante-deux");


Il me semble que "CalculeLeMachin" est un type du point de vue du
langage, et une fonction du point de vue du programmeur.

Avatar
Cyrille
Bonjour,

J'écris les noms de variable ainsi : "une_variable".
Les noms de fonctions (et de types) s'écrivent avec des majuscules :
"UneFonction".

Ainsi, j'écrirais :

void UneFonction (int une_variable);


Mais que dois-je faire quand une variable est une fonction ou un
foncteur ?

template <class Foncteur> void QuaranteDeux (Foncteur const& machin)
// "machin" en minuscules, car c'est un nom de variable
{
machin (42); // ... sauf qu'ici c'est une fonction !
}

QuaranteDeux (UneFonction);
// ... et ici la variable passée en paramètre est en majuscules :-/

Comment gérez-vous ce cas ?


J'ai la même convention pour les variables et les fonctions.
Si c'est une option impossible, alors on peut s'en tirer en utilisant
une troisième convention différente pour les foncteurs, qui n'est pas
obligé de ressembler aux deux autres.
Je propose un leet speak adapté pour avoir uniquement de l'alphanum:
FaiseurDeQuelqueChose devient ph41z3vrD3Qv31qv3ch0z3

--
http://www.assemblee-nationale.fr/12/propositions/pion3372.asp
Ça doit être chouette de vivre dans un pays libre...

Avatar
Fabien LE LEZ
On Sun, 21 Jan 2007 13:17:28 +0100, Cyrille :

Je propose un leet speak adapté pour avoir uniquement de l'alphanum:
FaiseurDeQuelqueChose devient ph41z3vrD3Qv31qv3ch0z3


L'IOCCC n'est pas mort...

1 2