Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probléme pour les classes C++

Sujet résolu
    5 juin 2008 à 17:47:05

    Voilà j'ai rien compris sur le tuto des Classes(Partie 1 et 2) o_O (si j'écrit ça aussi gros et soulignée c'est que c'est la 1er fois que je ne comprend pas un cours sur le site du zero ^^ ), mais bizarment j'ai reusis à avoir 20/20 au qcm (donc je doit avoir compris certaine chose alors mais les quels)

    Aider moi à comprendre svp :(
    • Partager sur Facebook
    • Partager sur Twitter
      5 juin 2008 à 18:34:11

      Euuh... "rien", c'est pas très précis... qu'est-ce que tu arrives pas à faire, plus exactement?
      • Partager sur Facebook
      • Partager sur Twitter
        5 juin 2008 à 21:39:28

        En fait j'ai compris chaque térmes des class (methode, attribut, constructeur), mais mon probléme c'est que je n'arrive pas à coder une class tout seul en faite je comprend pas la logique des objet et des class (j'ai du m'embrouiller l'ésprit) aidez mois a comprendre comment ce sére ton d'une class pour crée un objet

        Voilà
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          5 juin 2008 à 22:05:56

          Tu peux te représenter les classes comme des objets. Objets plus ou moins physique.

          C'est à dire :
          Prends une maison, c'est un (gros) objet.
          Il a pas mal d'attribut, tel que ( sans rentrer dans des détails d'architecte ) la couleur des murs, la forme, l'intérieur, ...
          Chaque attribut est un autre objet. C'est ça les classes (class).
          • Partager sur Facebook
          • Partager sur Twitter
            5 juin 2008 à 23:10:31

            Quand on développe, on manipule des choses, les actions que l'on réalise sur ces choses sont des verbes.
            Les choses sont traduits en des objets
            Les verbes sont traduits en des fonctions membres.

            P.ex. Un arroseur automatique, tu vas l'"activer", ou l'"arrêter" en fonction de l'heure. Cela pourra être commandé par un programmateur qui connait les plages d'activité. Le programmateur répondra à la question (booléenne) : "jAlimente(Heure) ?", et il sera programmable: "activerDurant(PladeDeTemps)", "desactiverDurant(PlageDeTemps)".

            Une classe, c'est un type qui décrit le comportement de tout objet d'une même famille: deux Arroseurs, 42 Programmateurs, etc.

            (Je n'aime pas du tout la vision par attribut, car cela sème la confusion par rapport aux structures du C, en n'introduisant aucune différence: "pourquoi faire des objets si c'est pour faire pareil?". Or justement, l'objet ce n'est pas pareil, pour agréger des données, la POO n'apporte rien de révolutionnaire)
            • Partager sur Facebook
            • Partager sur Twitter
            C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
              6 juin 2008 à 11:31:37

              Merci à vous je pense avoir compris et pis tout façon ça viendra a force de pratique :lol:
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                6 juin 2008 à 18:17:52

                Citation : lmghs

                (Je n'aime pas du tout la vision par attribut, car cela sème la confusion par rapport aux structures du C, en n'introduisant aucune différence: "pourquoi faire des objets si c'est pour faire pareil?". Or justement, l'objet ce n'est pas pareil, pour agréger des données, la POO n'apporte rien de révolutionnaire)

                Tu as parfaitement raison.

                Mais il en faut bien (des attributs), sinon comment savoir si l'arroseur est en marche? :)
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  9 juin 2008 à 3:19:18

                  Bonjour
                  Je me suis remis au C++ après quelques années d'oubli, et je suis aussi en train de lire le tutorial. Voila ce que j'ai compris: la classe est un type d'objet: par exemple, je définis ci-après la classe Quadrilatere, réunissant tous les types d'objets géométriques qui ont 4 côtés à angles droits.
                  Dans la classe quadrilatere, je définis deux attributs: longueur et largeur, et deux méthodes: perimetre et surface.
                  Un objet, appelé aussi instance pour faire savant , sera un quadrilatere particulier que je veux utiliser, avec des valeurs précise pour longueur et largeur.
                  Quant à l'intérêt en programmation, il est majeur dès que tu t'attaques à un programme un peu long, avec beaucoup de modules, même un simple jeu de dames.
                  Amicalement.

                  Si tu veux un exemple, le code suivant semble fonctionner (je n'ai pas organisé les .h et .cpp):

                  #include <iostream>
                  using namespace std ;

                  class Quadrilatere
                  {
                  public:
                  Quadrilatere::Quadrilatere() // CONSTRUCTEUR PAR DEFAUT
                  {
                  //mlargeur=0; // Optionnel: permettrait d'initialiser
                  //mlongueur = 0; // par defaut les attributs
                  }
                  Quadrilatere::Quadrilatere(int a, int b) // CONSTRUCTEUR SURCHARGE
                  {
                  mlargeur=a;
                  mlongueur = b;
                  }

                  void Quadrilatere::dimensionne(int a, int b) // une methode permet d'acceder aux membres prives de la classe
                  {
                  mlargeur = a;
                  mlongueur = b;
                  }
                  int Quadrilatere::surface()
                  {
                  return (mlargeur*mlongueur) ;
                  }
                  int Quadrilatere::perimetre()
                  {
                  return (2*(mlargeur+mlongueur));
                  }
                  Quadrilatere::~Quadrilatere() // DESTRUCTEUR
                  {
                  }
                  private:
                  int mlargeur;
                  int mlongueur;
                  }; // NE PAS OUBLIER LE POINT-VIRGULE !!

                  int main()
                  {
                  Quadrilatere monCarre; // cree l'objet "carre". Utilise le constructeur par defaut
                  monCarre.dimensionne (5,5); // et la methode dimensionne
                  // monCarre.mlongueur = 5; erreur : ne permet pas d'acceder a un membre private.
                  cout <<"surface du carre : "<< monCarre.surface()<<endl;

                  Quadrilatere monRectangle(2,3); //cree l'objet "rectangle".Utilise le constructeur surcharge
                  cout <<"surface du rectangle : "<< monRectangle.surface()<<endl;
                  system("PAUSE");
                  }
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    9 juin 2008 à 19:46:11

                    Citation : Mohoriss

                    la classe Quadrilatere, réunissant tous les types d'objets géométriques qui ont 4 côtés à angles droits.

                    Un quadrilatère n'a pas forcement 4 angles droits. Tu confonds avec rectangle. Un quadrilatère est un polygone à 4 côtés.

                    Sinon, si on ne connait pas l'héritage, je pense que ta structure ( que j'ai pas lue car tu n'as pas utilisé les balises de code :-° ) me parait bonne.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Probléme pour les classes C++

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown