IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

vecteur en c++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 71
    Par défaut vecteur en c++
    Bonjour,
    alors j'essaye de comprendre comment créer de manière logique, une classe vecteur. Pour ça, je lis le cours du lien ci-joint.

    Donc, on donne à cette classe vecteur le nom de A, et on écrit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    typedef double R; //définition du corps
    class A
    {private:
     
    int N;//taille du vecteur
    R *v; \\pointeur sur les N valeurs
     
    public:
     
    A()
    {cout<<"pas de constructeur par défaut"<<endl;}
     
    A(const A & a) : N(a.N), v(new R [a.N])
    {operator=(a)}
     
    A(int i) : N(i), v(new R[i])
    { assert(v);}
     
    A & operator = (A & a)
    {assert (N==a);
    for (int i=0; i<N;i++) v[i]=a.v[i];
    return *this;
    }
     
    ~ A()
    {
    delate [] v;
    }
     
    R & operator [](int i) const
    {
    assert (i>=0 && i<N);
    return v[i];
    }
    1- Je ne comprend pas la syntaxe des constructeur par copie, et pourquoi il utilise new? et il y'a combien de constructeurs? Il me semble qu'ils sont au nombre de 3 mais pourquoi tout ca?
    4- À quoi sert
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    R & operator [](int i) const
    {
    assert (i>=0 && i<N);
    return v[i];
    }
    ?

    Je vous remercie par avance.
    Images attachées Images attachées
    • Type de fichier : pdf RNM.pdf (181,3 Ko, 204 affichages)

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 45
    Par défaut
    Bonjour, (réponse rapide)

    Sans vouloir te décourager aucunement, ce cours est obsolète. Depuis 2006, les choses ont pas mal changé dans l'univers C++, on n'utilise quasiment plus de pointeurs avec des new/delete, qui causait toujours beaucoup de souci aux débutants. Maintenant, c'est le RAII qui prime: allocation sur la pile et destruction automatique en fin de bloc.
    Et au lieu de déclarer le type de donnée par un typedef qui n'apporte pas grand chose, on créerait plutot une classe templatée, mais on va y aller doucement...

    Bref, essaie de trouver un cours plus moderne, ça sera plus pertinent. (cherche C++11, RAII

    Par ailleurs, pour l'exemple que tu évoques, le mieux est d'utiliser les conteneurs de la bibliothèque, en l'occurence std::vector est le plus adapté.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class Vecteur
    {
       private:
          std::vector<double> _data;
       public:
          ...ici les méthodes
    };
    Pour tes questions sur les constructeurs: il y en a plusieurs parce qu'on peut vouloir créer un vecteur de plusieurs façons.

    La signature du contructeur de recopie est toujours:
    T(const T& t); (avec T le type)
    Ce qui signifie que l'argument est une reference constante du même type. Mais si tu utilises les conteneurs, tu n'as pas besoin de t'en préoccuper ! (un des interet de les utiliser, d'ailleurs...), tu laisse le compilateur en générer un implicite.

    Bon courage !

  3. #3
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 71
    Par défaut
    S'il vous plaît, vous avez utilisé
    std::vector<double> _data;

    1- qui est data? c'est un fichier qui contient les données? Comment organiser ces données, et doit-on mettre un include quelque part?
    2- Pour les constructeur, pouvez vous m'en dire un peu plus svp? Pourquoi il y'en a plusieurs et qu'est ce qu'ils font?
    3- avez vous un cours en français qui donne un exemple détaillé sur comment construire une classe de vecteur proprement pour comprendre? dans c++11 rai il n'y en a qu'en anglais.
    Merci beaucoup.

  4. #4
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 71
    Par défaut
    Je cherche désépéremment à construire une classe de vecteur en C++, afin de faire des addition entre deux vecteur et de multiplier un vecteur par un scalaire. (la taille des vecteurs doit être quelconque).

    Pouvez vous m'expliquer comment l'écrire, ou bien me donner un bon cours qui explique ça s'il vous plaît. Je suis vraiment perdue, je trouve pleins de choses différentes sur le net.


    Je vous remercie par avance.

  5. #5
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Par défaut
    Un peu comme std::valarray ?

  6. #6
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 71
    Par défaut
    Je cherche à le faire sans les templates, pour bien comprendre les méthodes et les attributs que l'on met dans une classe vecteur, et après je passerai aux templates.
    Peux tu m'aider stp à avoir un exemple qui crée une classe de vecteur et un code qui fait la somme de deux vecteurs et la multiplication d'un scalaire par un vecteur? Svp.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 45
    Par défaut
    Bon, là, je pense qu'il vaut mieux commencer par un cours C++ et se documenter un peu.

    Ou sinon un bon livre C++, voir la section sur devp.

    Et sinon, oui, beaucoup de ressources sont en anglais, mais dans ce domaine d'activité, l'anglais est INCONTOURNABLE. Donc il va falloir s'y mettre...
    Bon courage !

    Citation Envoyé par hinaneee Voir le message
    S'il vous plaît, vous avez utilisé
    std::vector<double> _data;

    1- qui est data? c'est un fichier qui contient les données? Comment organiser ces données, et doit-on mettre un include quelque part?
    2- Pour les constructeur, pouvez vous m'en dire un peu plus svp? Pourquoi il y'en a plusieurs et qu'est ce qu'ils font?
    3- avez vous un cours en français qui donne un exemple détaillé sur comment construire une classe de vecteur proprement pour comprendre? dans c++11 rai il n'y en a qu'en anglais.
    Merci beaucoup.

  8. #8
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 71
    Par défaut
    Alors voilà, j'essaye d'écrire un programme qui fait la somme de vecteur, et le produit d'un scalaire par un vecteur, en utilisant les classes. J'ai compris qu'il existe deux méthodes: une méthode en utilisant les opérateurs de surcharge, et une méthode qui utilise les templates.

    Méthode 1:

    fichier.h


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class Vecteur
    {
    private:
    int N;//taille du vecteur
    double *v;//pointer les composantes
     
    public:
    Vecteur();//constructeur par défaut
    Vecteur(int i);//constructeur avec taille
    ???
    }
    1- Comment déclarer un constructeur de copies? j'ai vu plusieurs livres et je suis perdue, quelle est la déclaration, en générale?

    2- Comment implémenter les 3 constructeurs? et le destructeurs? (expression générale qu'on utiise quel que soit le problème), et comment déclarer et implémenter les opérateurs + et mulutiplication par un scalaire?

    Méthode 2: en utilisant la bibliothèque valarray

    on garde l'ancier fichier Vecteur.h mais dans cette méthode, on n'a pas besoin d'implémenter les opérateurs d'addition et de multiplication, et on obtient le fichier Vecteur.cpp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    #include "Vecteur.h"
    #include <Valarray"
    using namespace std;
    int main()
    {
    valarray<int> A(4);
    valarray<int> B(4);
    std::cout<< A=<<endl;
    std::cin>>A;
    std::cout<< B=<<endl;
    std::cin>>B;
    valarray<int> C=A+B;
    valarray<int> D=\lambda * A;
    return 0;
    }
    Mais il ne faudrait pas préciser que A et B sont des éléments de la classe Vecteur, et que lambda est un scalaire? Comment faire s'il vous plaît.

    Je vous remercie par avance de m'aider.

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Vive le multipost... http://www.developpez.net/forums/d15...cpp/class-cpp/
    Commence par apprendre les bases du langage par exemple dans un cours C++.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  10. #10
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 71
    Par défaut classe templates pour vecteur
    Bonjour,
    je cherche à créer une classe vecteur en utilisant les templates, et qui a l'opération du calcul des normes.

    voici mon code pour le moment(sans templates pour le moment):

    fichier.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    #include<iostream>
    class vecteur
    {
     private:
      unsigned int n;//taille
      double *v;//pointer les composantes
     public:
     vecteur():v(NULL),n(0){};//Déclaration et définition du constructeur par défaut
      vecteur(unsigned int nb=0, double val=0);//déclaration d'un constructeur avec argument
      vecteur(vecteur const& v);//déclaration d'un constructeur de copie
      ~vecteur();//déstructeur
      double& operator [] (int rang);//Déclaration de l'opérateur[]
      vecteur& operator = (const vecteur&);//Déclaration de l'opérateur =
      vecteur operator * (double scalar); //Déclaration de l'opérateur *
      vecteur operator + (const vecteur&);//Déclaration de l'opérateur +
      vecteur operator - (const vecteur&);//Déclaration de l'opérateur -
      vecteur operator += (const vecteur&);//Déclaration de l'opérateur +=
      vecteur operator -= (const vecteur&);//Déclaration de l'opérateur -=
      float vecteur:: norme (const vecteur&, unsigned int n);
      void affiche();   
    };
    fichier.cpp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
    #include <iostream>
    #include "template.h"
    #include <cmath>
    #include <fstream>
    using namespace std;
    //Définition du constructeur de copie
    vecteur::vecteur(const vecteur& ref): n(ref.n)
    {
      v = new double[n];
      for(unsigned int i=0; i<n;i++)
        v[i]=ref.v[i];
    }
     
    //Définition du constructeur avec argument
    vecteur::vecteur(int nb, double val)
    {
       n = nb;
       if (nb == 0)
          v = NULL; 
       else
       {
          v = new double[n];
          for (unsigned i=0; i<n; i++)
             v[i] = val;
       }
    }
     
    //Définition du destructeur
    vecteur::~vecteur()
    {}
     
    //Définition de []
    double& vecteur::operator[](int rang)
    {
      return v[rang]; 
    }
     
    //Définition de =
     
    vecteur &vecteur::operator=(const vecteur &a)
    {
      for(int i=0;i<n;i++)
        {
          v[i]=a.v[i];
        }
    return *this;
    }
     
     
    //Définition de +
    vecteur vecteur:: operator + (const vecteur &a)
    {
    vecteur d(n);
    for (int i=0;i<n;i++)
    d.v[i]=v[i]+a.v[i];
    return d;
    }
     
    //Définition de *
    vecteur vecteur:: operator*(double  d)
    {
    for(int i=0;i<n;i++)
    v[i]=d*v[i];
    return *this;
    }
     
     
    //Définition de la fonction norma
    float vecteur:: norme (const vecteur&, unsigned int n)
    {
    float p=;
     for (int i=; i<n; i++)
      {
       p=v[i] * v[i] + p;
      }
     return sqrt(p);
    } 
     
     
     
     
    //Déclaration de la fonction affiche
    void vecteur::affiche()
    {
    //cout<<"les coordonnées du vecteurs v sont"<<endl;
    for(int i=0;i<n;i++)
    {
    cout<<v[i]<<endl;
    }
    cout<< "---fin---"<<endl;
    }
     
    int main()
     
    {
     
    return ;
     
    }
    Quelles sont les modification a apportées pour introduire les templates?
    Merci par avance.
    Je vous remercie par avance pour votre aide.

  11. #11
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    D'abord un typedef (public) pour remplacer tous les "double" par "value_type".
    Puis, introduire la template en elle-même pour, remplacant le double du typedef par T (ou Value ou n'importe quel nom)

    Ca donnerait quelque chose comme ceci: (ce n'est pas un vecteur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    template <typename T>
    class Bidule {
    public:
        typedef T value_type;
     
    private:
        value_type v;
     
    public:
        Bidule(value_type const& v) : v(v) {}
        value_type value() const {return v;}
    };
    Encore une fois, relis notre faq sur les opérateurs
    Notamment, il faut vraiment que tu définisses les opérateurs non-affectants hors de la classe.
    Du coup, ce seront des templates de fonctions, elles aussi.

    J'avais déjà fais ce travail dans mon premier message

  12. #12
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 71
    Par défaut
    Bonjour,
    tout d'abord, merci d'avoir pris le temps de me répondre. J'ai deux questions s'il vous plaît.
    1- Je lis que quelques templates vecteurs commencent par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    template <typename Real, int dim>
    class Vector{
       Real data[dim];
    public:
    donc il faut mettre aussi int dim, et le type générique s'appelle Real (dans votre code c'est T). Que signifie la ligne Real data[dim];? S'il vous plaît.
    Je lis aussi que tout ce qui est indice ou dimension, on ne lui mete pas int ou unsigned int, mais size_t, ce n'est pas obligatoire?
    2- Que pensez vous de la fonction norme que j'ai défini? Et comment l'arranger? S'il vous plaît.
    3-Poutquoi utiliser value_type? Normalemrent c'est T qui représente le type générique. Non?
    Je vous remercie par avance.

  13. #13
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 71
    Par défaut
    Bon, j'ai réecris mon programme

    fichier.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
     
    #include<iostream>
     
    //template<typename Real, int dim> class Vector; 
     
    //template<typename Real, int dim> 
    //std::ostream& operator<<(std::ostream&, Vector<Real,int> const&);
     
    template <typename Real>
    class vector
    {
     private:
      int dim;//taille
      Real *v;//pointer les composantes
     public:
      vector(int nb=0, Real val=0);//déclaration d'un constructeur avec argument
      vector(vecteur const& v);//déclaration d'un constructeur de copie
      ~vector();//déstructeur
      Real& operator [] (int rang);//Déclaration de l'opérateur[]
      vector& operator = (const vector&);//Déclaration de l'opérateur =
      vector operator * (Real scalar); //Déclaration de l'opérateur *
      vector operator + (const vector&);//Déclaration de l'opérateur +
      vector operator - (const vector&);//Déclaration de l'opérateur -
      Real vector:: norme (const vector&, int dim) const;
      void affiche();   
    };
     
     
     
    //Définition du constructeur de copie
    vector::vector(const vecteur& ref): n(ref.dim)
    {
      v = new Real[dim];
      for(int i=0; i<dim;i++)
        v[i]=ref.v[i];
    }
     
    //Définition du constructeur avec argument
    vector::vector(int nb, Real val)
    {
       dim = nb;
       if (nb == 0)
          v = NULL; 
       else
       {
          v = new Real[dim];
          for (int i=0; i<dim; i++)
             v[i] = val;
       }
    }
     
    //Définition du destructeur
    vector::~vector()
    {}
     
    //Définition de []
    Real& vector::operator[](int rang)
    {
      return v[rang]; 
    }
     
    //Définition de =
     
    vector &vector::operator=(const vecteur &a)
    {
      for(int i=0;i<dim;i++)
        {
          v[i]=a.v[i];
        }
    return *this;
    }
     
     
    //Définition de +
    vector vector:: operator + (const vecteur &a)
    {
    vecteur d(dim);
    for (int i=0;i<n;i++)
    d.v[i]=v[i]+a.v[i];
    return d;
    }
     
    //Définition de *
    vector vector:: operator*(Real  d)
    {
    for(int i=0;i<dim;i++)
    v[i]=d*v[i];
    return *this;
    }
     
     
    //Définition de la fonction norme
    Real vector:: norme (const vecteur&, int dim) const
    {
    Real p=;
     for (int i=0; i<dim; i++)
      {
       p=v[i] * v[i] + p;
      }
     return sqrt(p);
    } 
     
     
     
     
    //Déclaration de la fonction affiche
    void vector::affiche()
    {
    //cout<<"les coordonnées du vecteurs v sont"<<endl;
    for(int i=0;i<dim;i++)
    {
    std::cout<<v[i]<<std::endl;
    }
    std::cout<< "---fin---"<<std::endl;
    }
    fichier.cpp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    #include <iostream>
    #include "Vector.h"
    #include <cmath>
    #include <fstream>
    using namespace std;
     
     
    int main()
     
    {
     
    return 0 ;
     
    }
    Et il me renvoie les erreurs suvantes:

    error: expected ‘)’ before ‘const’
    vector(vecteur const& v);//déclaration d'un constructeur de copie
    ^
    Vector.h:23:8: error: extra qualification ‘vector<Real>::’ on member ‘norme’ [-fpermissive]
    Real vector:: norme (const vector&, int dim) const;
    ^
    Vector.h:23:48: error: explicit specialization of ‘Real vector<Real>::norme(const vector<Real>&, int) const’ must be introduced by ‘template <>’
    Real vector:: norme (const vector&, int dim) const;
    ^
    Vector.h:30:1: error: invalid use of template-name ‘vector’ without an argument list
    vector::vector(const vecteur& ref): n(ref.dim)
    ^
    Vector.h:38:1: error: invalid use of template-name ‘vector’ without an argument list
    vector::vector(int nb, Real val)
    ^
    Vector.h:52:1: error: invalid use of template-name ‘vector’ without an argument list
    vector::~vector()
    ^
    Vector.h:56:1: error: ‘Real’ does not name a type
    Real& vector::operator[](int rang)
    ^
    Vector.h:63:1: error: invalid use of template-name ‘vector’ without an argument list
    vector &vector::operator=(const vecteur &a)
    ^
    Vector.h:74:1: error: invalid use of template-name ‘vector’ without an argument list
    vector vector:: operator + (const vecteur &a)
    ^
    Vector.h:83:1: error: invalid use of template-name ‘vector’ without an argument list
    vector vector:: operator*(Real d)
    ^
    Vector.h:92:1: error: ‘Real’ does not name a type
    Real vector:: norme (const vecteur&, int dim) const
    ^
    Vector.h:106:6: error: ‘template<class Real> class vector’ used without template parameters
    void vector::affiche()
    ^
    Vector.h: In function ‘void affiche()’:
    Vector.h:109:15: error: ‘dim’ was not declared in this scope
    for(int i=0;i<dim;i++)
    ^
    Vector.h:111:12: error: ‘v’ was not declared in this scope
    std::cout<<v[i]<<std::endl;



    Indiquez moi comment le corriger s'il vous plaît pour que je comprenne une bonne fois pour toute. Je vous remercie par avance.

  14. #14
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 470
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vector::vector(const vecteur& ref): n(ref.dim)
    vecteur != vector

Discussions similaires

  1. Utilisation des vecteurs
    Par EmilieG dans le forum MFC
    Réponses: 12
    Dernier message: 19/03/2004, 16h28
  2. [math] somme de plusieurs vecteurs à 3 dimensions
    Par teska dans le forum Mathématiques
    Réponses: 5
    Dernier message: 04/06/2003, 21h40
  3. Récuperer les coordonnées d'un vecteur
    Par kerzut dans le forum OpenGL
    Réponses: 5
    Dernier message: 15/04/2003, 11h51
  4. Zoom sur des vecteurs ou lignes
    Par mat.M dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 25/11/2002, 10h40
  5. matrices * vecteur
    Par delire8 dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 07/09/2002, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo