Partage
  • Partager sur Facebook
  • Partager sur Twitter

[c++] classe

    9 juillet 2006 à 23:44:23

    voilà j'aurais une question subtile lol, dans le c++, quel est léquivalent de this pour le java


    #include "../include/complex.h"
    using namespace std;
    using namespace Complex;

    int main() {
            complex c = complex(4.0,5.0);
            c.print();
            complex d = complex(1.0,3.2);
            c = c +d;
            d.print();
            c.print();
            c = c * d;
            c.print();
            c = c / d;
            c.print();
            return 0;
    }


    complex::complex(double reall, double ima) {
            real = reall;
            img = ima;
    }

    complex complex::clone(complex& c) {
            complex com = complex(c.real, c.img);
            return com;
           
    }

    complex complex::conjuge() {
            return complex(real, -img);
    }

    void complex::print() {
            char s = '+';
            if(img < 0) s = 0;
            cout << real << s << img << "i" << endl;
    }

    double complex::getReal() {
            return real;
    }

    double complex::getImg() {
            return img;
    }

    /*
     * la section des opérateur
     */



    complex complex::operator+(complex a) {

            return complex(a.getReal() + real,a.getImg() + img);
    }


    complex complex::operator-(complex b) {
            return complex(real - b.getReal(), img - b.getImg());
    }

    complex complex::operator*(complex b) {
            double r = (real * b.getReal()) - (img * b.getImg());
            double i = (img * b.getReal()) - (real * b.getImg());
            return complex(r,i);
           
    }

    complex complex::operator/(complex b) {
            complex c = this.operator*(b.conjuge()); //ici j'aimerais utilisé l'objet courant
            complex d = b * b.conjuge();
            return complex(c.getReal() / d.getReal(), c.getImg() / d.getReal());
           
    }




    mon en-tête



    #include <cmath>
    #include <iostream>


    namespace Complex {
            class complex {
                    private:
                            double real;
                            double img;

                    public:
                            //constructeur
                            complex(double reall,double imga);
                            //fonction
                            complex clone(complex& c);
                            complex conjuge();
                            double getReal();
                            double getImg();
                            void print();
                   
                            complex operator+(complex);
                            complex operator-(complex);
                            complex operator*(complex);
                            complex operator/(complex);
                            complex exp();
            };



    }


    voilà si qu'elqu'un à une idée
    • Partager sur Facebook
    • Partager sur Twitter
      10 juillet 2006 à 6:59:34

      En C++ this existe aussi (Historiquement parlant C++ est plus vieux que java anyway). Comme c'est un pointeur il faut bien penser à utiliser l'opérateur -> pour accéder aux membres.
      • Partager sur Facebook
      • Partager sur Twitter
        10 juillet 2006 à 10:24:39

        complex complex::operator+(complex a)
        {
                return complex(a.getReal() + real,a.getImg() + img);
        }

        pourquoi tu utilise getReal() et getImg() ? alors que tu peux utiliser directement real et img car les surcharge sont déclarée dans la classe donc peuvent utiliser les membres priver.

        Sinon pour la fonction clone tu peux utiliser comme constructeur, après je sais pas comment tu en aura besoin.
        • Partager sur Facebook
        • Partager sur Twitter
          10 juillet 2006 à 10:35:30

          Il y a pas mal de choses que tu pourrais revoir dans ce code pour le "proprifier" : Pourquoi ne pas utiliser des listes d'initialisation dans le constructeur par exemple ? (et la rectification de tomu)
          • Partager sur Facebook
          • Partager sur Twitter
            10 juillet 2006 à 18:15:51

            Citation : Pas de titre

            Il y a pas mal de choses que tu pourrais revoir dans ce code pour le "proprifier" : Pourquoi ne pas utiliser des listes d'initialisation dans le constructeur par exemple ? (et la rectification de tomu)



            je suis loin de maitriser toute la syntax du c++ chaque chose en son temps
            et ceci n'est qu'un exercice

            => kayl: merci c'est exactement ce qu je voulais savoir.
            • Partager sur Facebook
            • Partager sur Twitter
              10 juillet 2006 à 22:24:25

              Citation : mythrys

              ceci n'est qu'un exercice


              Justement c'est là où tu dois essayer de faire le plus de choses possible pour t'entrainer et voire plusieur aspects, surcharge du constructeur, rajouter des fonctions de traitement qui fond des calcules, l'héritage, ...
              • Partager sur Facebook
              • Partager sur Twitter

              [c++] classe

              × 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