Valeur par défaut / surcharge d'une fonction

Valeur par défaut / surcharge d'une fonction

by Martin Samuel Rollet -
Number of replies: 3

Bonjour,

Je souhaiterais appliquer à une fonction du module graphic une valeur par défaut, qui est stockée comme variable dans le namespace (non-nommé) du même module. La valeur par défaut devrait donc se trouver dans le prototype de cette fonction, cependant les conventions de programmations indiquent qu'il faut déclarer les fonctions appelées dans le fichier avant les variables globales au même fichier. Il n'est donc pas possible d'en passer comme valeur par défaut car pas encore déclarée lors du prototypage.

Est-il autorisé pour palier à ce problème d'utiliser la surcharge de cette fonction comme suit :

namespace {

void fonction();

void fonction(int param);

...

int valeur_defaut(0);

}

namespace {

void fonction() { fonction(valeur_defaut); }

void fonction(int param) { ... }

}

Merci d'avance.

In reply to Martin Samuel Rollet

Re: Valeur par défaut / surcharge d'une fonction

by Ronan Boulic -
je viens de relire les conventions et je ne vois pas le problème que vous décrivez.

Les fonctions sont déclarées après les variables dans le unnamed namespace.

In reply to Ronan Boulic

Re: Valeur par défaut / surcharge d'une fonction

by Martin Samuel Rollet -

L'idée serait de déclarer une variable non-constante décrite en "O15", qui serait globale au fichier. Les prototypes des fonctions appelées uniquement dans le fichier sont les "O14", donc définies avant.

Dans ce cas, il me semble que j'ai bien le problème pour mettre cette variable en valeur par défaut.

Merci d'avance.

In reply to Martin Samuel Rollet

Re: Valeur par défaut / surcharge d'une fonction

by Ronan Boulic -

ok je vois. vous pouvez modifier l'ordre pour cette fonction au lieu de mettre en place un mécanisme compliqué.

Ajoutez un commentaire pour expliquer le changement d'ordre des déclarations.