J'ai une erreur de compilation: "no matching function for call to 'Accord::getNotes(int &, Note & )..... candidates are ...(int &, Note*).
Voila la classe accord:
Code :
- class Accord {
- private :
- int my_nb_notes;
- Note my_notes[4];
- void nom_to_notes(string nom);
- static string qualite(int nb_notes, int tierce, int quinte, int septieme);
- public :
- Accord();
- Accord(string nom);
- Accord(const Accord &a);
- string toString() const;
- void setAccord(string nom);
- void transpose(int intervalle);
- void getNotes(int & nb_notes, Note tab_notes[]) const;
- Accord & operator= (const Accord &n);
- };
|
Code :
- void Accord::getNotes(int & nb_notes, Note tab_notes[]) const {
- nb_notes= my_nb_notes;
- for (int i; i<nb_notes; i++){
- tab_notes[i]=my_notes[i];
- }
- }
|
le Main.cc
Code :
- #include "Accord.h"
- int main(){
- int nb;
- string acc= "Do";
- Note tab[4];
- Accord ac;
- ac.getNotes(nb, tab[4]);
- for (int i =0; i<nb; i++){
- cout << tab[i].toString() << endl;
- }
- return 0;
- }
|
L'erreur doit être dans la déclaration du tableau de Note (classe)dans le main.cc. Un tableau est automatiquement passé par réference non ? Pourquoi l'appel ne colle pas avec le prototype dans la classe Accord ?
Détaillez un peu les explications Merci
Message édité par Pwill le 06-03-2004 à 13:05:18