Discuter:C++

Un article de Wikipédia, l'encyclopédie libre.

Bonjour, je me pose une question :

<<La F.A.Q C++/CLI Les réponses aux questions sur C++/CLI>>

Que fout-ce là ?


Un seul hello, world est ce qu'il faut. Sinon chacun va venir avec son placement d'accolades, son utilisation des namespace, sa façon de déclarer les paramètres formels, son indentation... En outre, le return 0; est inutile en C++. Déjà qu'en C on pourrait très bien justifier un exemple sans le return 0;. Marc Mongenet 16 jun 2004 à 05:03 (CEST)

Il aurait peut être été intéressant de rajouter que std:: est inutile si l'on a : using namespace std; non ? Francois Trazzi

Pas pour cet exemple anecdotique. Mais sûrement dans un chapitre sur les namespace. Cet article est plus proche de l'état d'ébauche que de l'article fini, pratiquement tout reste à faire. Marc Mongenet 16 jun 2004 à 09:18 (CEST)

On pourrait aussi préciser que le terme C++ provient de l'écriture en langage C/C++ de l'"incrémentation" (je crois meme, la "post-incrémentation") d'une variable. C++ est donc la variable C incrémenté. Bidoushowan

Oui. Marc Mongenet 16 aoû 2004 à 15:29 (CEST)

Sommaire

[modifier] Extensions de fichiers

Le but de ce petit bout de page est de recence les diffrentes extensions de fichier autour de cpp :

".cpp", ".cc", ".C" 
fichier source d'implémentation
".h", ".hpp"  
fichier source d'entête
".o", ".obj" 
fichier objet après compilation du source

<-- la suite ici

On trouve aussi parfois ".cxx" et ".hxx". Durandal 6 novembre 2005 à 21:21 (CET)

[modifier] Programmation générique ?

une (trop?) grande partie de l'article est consacrée aux template, qui implémentent en C++ une notion déjà (partiellement) existante en ADA (avec les "generic") et qui va prendre de plus en plus d'importance (sera implanté dans C# notamment). Je pense qu'il faut créer une page à ce sujet, et tiens, je l'ai fait ;-)

Goulu 1 août 2005 à 10:03 (CEST)

Bonne idée. Pfv2 3 octobre 2005 à 18:01 (CEST)


[modifier] Concernant la section L'encapsulation en C++

  • On y parle de fonctions membres. Ne serait-il pas plus adapté de parler de méthodes (concerne vraisemblalement également d'autres sections)?
Non, bien au contraire. Méthode est un terme impropre au C++. On va le retrouver dans d'autres langages ou dans la spéc d'UML. D'ailleurs dans cette dernière, une méthode correspond à la mise en oeuvre d'une opération. Vu sous cet angle, cela signifierait qu'une méthode est retranscrite en C++ par une fonction membre virtuelle; l'opération étant une fonction membre virtuelle pure. Parler de méthode en C++ est courant, mais il s'agit d'un abus de langage -- un peu comme de parler de polymorphisme pour désigner le polymorphisme d'inclusion (cf la taximonie détaillée par en:Luca_Cardelli).
Pour bien faire, il faudrait au contraire remplacer toutes les occurrences de méthode par fonction membre -- enfin, si on veut être respectueux jusqu'au bout de la terminologie C++.
--Luc Hermitte 27 avril 2007 à 11:16 (CEST)
  • On y parle de fonctions déclarés comme étant friend ; il me semble que l'on peut également déclarer des classes comme étant friend (autorisant ainsi cette classe à accèder aux membres private).
Tout à fait
--Luc Hermitte 27 avril 2007 à 11:16 (CEST)
  • Concernant les membres déclarés comme protected. Si une classe A déclare des membres protected, ceux-ci seront accessibles par une classe B héritant directement de la classe A. Mais si la classe B hérite de la classe A de manière private, ces membres seront considèrés comme des membres private de la classe B, et donc inaccessibles à une classe C qui hériterait de B. Par contre, si la classe B hérite de la classe A de manière public, ces membres seront considèrés comme des membres protected de la classe B et donc accessibles à une classe C héritant directement de la classe B.
Je n'ai pas regardé les détails, il y a des tableaux un peu partout qui résument l'évolution des droits d'accès au fil des héritages. Mais peu importe. C'est un détail syntaxique moins bien important AMHA que des aspects sémantiques, ou encore que la dichotomie "scolaire" Réutilisation (importation de code par héritage) Vs Subtituabilité (cf EST-UN, Principe de Substitution de Liskov, ...).
Du coup, je ne suis pas sûr que cela soit très pertinent.
NB: s/directement/publiquement/ ; directement sans aucun spécification implique public avec les struct, private avec les class.
--Luc Hermitte 27 avril 2007 à 11:16 (CEST)

Si quelques spécialistes du C++ peuvent confirmer, je modifierais l'article en conséquence.

Epeios

[modifier] Les pointeurs

Pourquoi avoir viré le passage sur les pointeurs ? Il ne semble pas que ça aie été discuté ici. Par ailleurs il n'y a même pas un lien vers un article Pointeur. Je trouve ça un peu dommage.
theo 9 février 2006 à 21:57 (CET)


Les pointeurs ne forment pas un élément clé du C++ , bien au contraire! Certaines bibliothèques C++ permettent de se passer complétement de pointeur à l'utilisation (non à la programmation j'en conviens!) et donner un exemple de pointeurs semble plus adéquat pour le C que le C++ ! Ici il faudrait mieux parler de passage de paramètres ou de const pour montrer la puissance du langage !

--Zzerome 9 février 2006 à 22:26 (CET)


Peut-être. Mais pour supprimer une section entière d'un article, il est souhaitable d'en discuter avant, d'expliquer la cause lors de la suppression et, ici, de faire au moins un paragraphe expliquant qu'on peut utiliser des pointeurs en C++ : après la modification, l'article ne contenait plus le mot "pointeur" ! J'ai restauré la section le temps que la discussion se fasse. Peter17 9 avril 2006 à 14:32 (CEST)
Bon je n'avais pas lu ce paragraphe avant de rétablir dans le document...au temps pour moi. Bon la discussion peut avoir lieu. Je donne mes arguments en vrac:
  • Les pointeurs sont expliqués (ou doivent l'être) dans le C
  • L'usage des pointeurs n'est pas incontournable loin de la
  • Des pages trop longues ou trop complètes nuisent souvent à la compréhension d'un concept. Il faut faire des choix sur ce que l'on présente --Zzerome 9 avril 2006 à 14:38 (CEST)
Je pense qu'il faudrait mentionner les pointeurs à au moins un endroit sur la page par une phrase du style "comme le C, le C++ permet l'utilisation de pointeurs" Peter17 19 avril 2006 à 10:53 (CEST)

[modifier] article étoffé

J'ai rajouté pas mal de sujets dans l'articles avec des exemples d'illustration. Je propose de

  1. compléter la partie objet
  2. découper la page en plusieurs sous articles tout en reprenant le même plan
  3. rajouter une charte graphique coloré et une navigation grâce à un menu (template) à droite.


qu'en pensez vous ? Merrheim 8 mars 2006 à 17:52 (CET)


Il faudra également rajouté des liens internes. Merrheim 9 mars 2006 à 09:16 (CET)

[modifier] Votre avis

J'ai modifié en profondeur cet article :

  1. l'appréciez vous ?
  2. le trouvez vous hors sujet ?
  3. le trouvez vous trop complet (nous sommes sur une encyclopédie) ?
  4. aimez-vous ce genre de charte graphique ?
  5. aimeriez-vous qu'on introduise ce niveau de détail pour chaque langage ?
  6. remarque : il reste encore de nombreux liens vers d'autres articles à rajouter.

merci Merrheim 9 mars 2006 à 13:00 (CET)

Que d'innovation ;) (je parle uniquement sur la forme) Je ne sais pas si tout le monde va adhérer... mais c'est le risque lié à toute innovation :p
Pour ma part, je trouve qu'il faudrait conserver sur l'article le résumé d'introduction et des sections classiques telles que par exemple l'"historique" et "voir aussi". En gros que quelquesoit l'article encyclopédique, le lecteur retrouve le desciptif traditionnel.
Après pour des exemples, des détails de définition ou de structure du langage, je te rejoins sur l'idée de faire des sous-sections. Même si je pense que jusque maintenant sur wikipédia 1 concept = 1 article...
Mon avis résumé : impossible de conserver cette présentation en l'état, mais il est possible de conserver l'idée de sous pages pour certains détails techniques propres au C++.
Le seul soucis, c'est comment récupérer en un shoot l'ensemble de l'article. Mais je commence à être hors sujet là :) --Boly 9 mars 2006 à 13:36 (CET)
Tiens j'ai mis une nouvelle version. cliques sur Avancé tout en haut !! Merrheim 9 mars 2006 à 16:24 (CET)
C'est exactement la réflexion que je m'étais faite, à savoir affiner un article suivant le niveau du lecteur tant sur la technique que sur le fond de l'article. maintenant peut être y aura-til un problème de mise à jour des données partout mais j'ai pas eu trop le temps d'affiner la question en lisant dans le détail. En tout cas moi je trouve çà pile-poil niveau conception d'un article. Pour avoir d'autres avis avant de modifier les autres langages, tu peux passer une annonce au bistro pour que la communauté en discute ;) Bravo encore pour toutes les idées innovantes ;) --Boly 9 mars 2006 à 18:37 (CET)
J'avais pas regardé le bistro dsl :)
Liens utiles :

Un lien utile de plus : Wikipédia:Pages à supprimer/C++/Avancé. R 10 mars 2006 à 01:35 (CET)

Je crois que, vraiment, c'est trop de modifications d'un seul coup. L'organisation en modèle rend quasi-impossible la modification par un débutant. Un des principes de WP c'est de rester simple et accessible.
Sinon, le contenu est long, très long, mais ça ne me pose pas trop de problème, le but peut tout à fait d'être exhaustif sur un sujet. Cependant, je proposerais plutôt un déplacement des explications sur le langage vers un article Syntaxe du C++, en gardant les informations générales (historique, etc.) dans C++. nojhan 10 mars 2006 à 09:18 (CET)

[modifier] Suppression

J'ai supprimé mes modifications : il semble qu'elles ne plaisaient pas § Merrheim 10 mars 2006 à 11:57 (CET)

[modifier] Modèle:Utilisateur C++

J'ai créé un petit modèle utilisateur en éssai, à améliorer
ou suprimmer s'il n'est pas le bienvenu...
SiMonkey 10 mai 2006 à 19:25 (CEST)

Modèle renommé avec le nom correct (avec un C majuscule). Verdy p 26 octobre 2006 à 21:03 (CEST)
Le modèle parle de C# et C++. Quelle drôle d'idée, C et C++, pourquoi pas, mais C# ? Marc Mongenet 26 octobre 2006 à 22:11 (CEST)
C'est vrai que je les préfèrerais séparés moi aussi. Mais sinon pourquoi pas, c'et sympa :) --Shlublu bla 27 octobre 2006 à 09:07 (CEST)

[modifier] liens externes

Bonjour,
J'ai supprimé la quasi-totalité des liens externes car ceux-ci (tutoriaux, forums, sites des projets C++; les liens sur les compilos VC et GCC sont deja dans la section compilateurs) faisaient plutot office d'annuaire de liens liés au C++ (cf Wikipédia:Ce que Wikipédia n'est pas). J'ai laissé cependant Référence des langages C et C++ qui me semble apporter une valeur à l'article. Maloq causer 26 décembre 2006 à 13:50 (CET)

[modifier] Déclaration vs. définition

Bonjour,

class MessageInternet {

private:
 string m_sSujet;
 string m_sExpediteur;
 string m_sDestinataire;
public:
 MessageInternet (string sujet, string expediteur, string destinataire);
 string GetSujet ();
 string GetExpediteur ();
 string GetDestinataire ();

};

est la DEFINITION de la classe MessageInternet. Une DECLARATION serait simplement

class MessageInternet;

[modifier] Sur l'exemple d'utilisation de "using namespace std"

Etant novice en programmation c++, je m'interrogeais sur le dernier exemple dans la section "Hello World".

#include <iostream>
using namespace std;
int main()
{
    std::cout << "Hello, new world!\n";
}

Marquer le "std::" n'est-il pas redondant ? Peut-être cela se justifie-t'il, mais cela contredit à la fois ce que je sais sur le c++ et le texte de l'article (Entre autre "et nous évite à utiliser l'opérateur de résolution de porté", à propos de "using namespace std").

C'est bien une contradiction. Il y a de plus une typo. Vincent Lextrait 6 juillet 2007 à 17:44 (CEST)