Réponse acceptée !
Pour pouvoir appeler tes méthodes, tu dois les mettre en public (elle étaient en private).
Le Avion:: est a mettre seulement si tu définis tes méthodes en dehors de la classe
av2 n'était pas initialisé. Tu peux l'initialiser en faisant new avion.
Il reste un truc: la mémoire allouée dans init nest pas libérée
Voila un exemple complet qui devrait compiler et s'exécuter sans erreur:
#include <iostream>
using namespace std;
class Avion {
private:
char _immatriculation[6], *_type;
float _poids;
void _erreur(char *message);
public: void init(char m[], char *t, float p) {
strcpy(_immatriculation, m);
_type = new char [strlen(t)+1];
strcpy(_type, t);
_poids = p;
}
void affiche() {
cout << _immatriculation << " " << _type;
cout << " " << _poids << endl;
}
};
int main()
{
Avion av1;
Avion *av2 =
new Avion(); Avion compagnie[10]; // un tableau d?instances
av1.init("FGBCD", "TB20", 1.47);
av2->init("FGDEF", "ATR 42", 80.0);
compagnie[0].init("FEFGH","A320", 150.0);
av1.affiche();
av2->affiche();
compagnie[0].affiche();
delete av2;}
_____________________________________
Un éditeur de ressources gratuit pour Windows