• [^] # Re: Tableau

    Posté par (site web personnel) . En réponse au journal Tu souhaites apprendre à programmer en shell. Évalué à 1.

    Je sais que l’exagération est voulue,

    J'éxagère un peu, mais pas tant que ça!

    Pour commencer tu n'as pas déclaré les prototypes de tes fonctions. Ensuite ton exemple est beaucoup trop naïf, quand tu programmes en C++ il faut absolument répondre aux questions suivantes:

    1. Comment passer mes arguments à ma fonction? J'ai le choix entre: par valeur immédiate, par référence, par pointeur sans transfert de propriété, par pointeur avec transfert de propriété, par recopie (si mon objet définit un constructeur de recopie, et que celui-ci n'est pas cassé… ah mais au fait, c'est une copie superficielle, etc.) Et encore j'évite les hypothèses de type pointeur sur void avec information adjascente pour récupérer le type (c'est parfois une option sérieuse).

    2. Comment récupérer la valeur de ma fonction? Dans un argument que j'aurais moi-même passé en argument (par référence ou par pointeur?) ou bien dans une valeur de retour, ou bien je renvoie une référence ou un pointeur sur un espace de stockage privé?

    3. Comment signaler les erreurs?

    Et encore je ne pose pas la question de savoir s'il est pertinent de fixer certains arguments comme template alors que c'est une question aprfois importante (par exemple pour les booléens gouvernant les messages de debugging et de profiling).

    mais définir une fonction en C++ n'est pas plus difficile que définir une fonction en… C.

    Je pense avoir démontré le contraire, puisque C n'a ni référence ni exception, les réponses possibles aux questions précédentes sont limitées à un choix plus restreint. Je parlais de C++ et pas de C, de toutes façons.