Appel non conforme d'une fonction membre non static

nourhene4
Messages postés
9
Date d'inscription
jeudi 19 janvier 2012
Statut
Membre
Dernière intervention
16 avril 2012
- 15 avril 2012 à 19:23
cptpingu
Messages postés
3834
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
20 octobre 2021
- 16 avril 2012 à 12:16
Bonjour/Bonsoir
J'ai appeler dans une classe une fonction membre d'une autre classe , mais une erreur survient ''appel non conforme d'une fonction membre non static"
Voici le code de la fonction main
#include "stdafx.h"
#include "iostream"
#include "Vehicule.h"
#include "Bateau.h"
#include "Helicoptere.h"
#include "Vehicule_Roulant.h"
#include "Facture_Client.h"
#include "Facture_Parc.h"
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{   int k; 
cout<<"Si Vous Voulez Ajouter Un Vehicule Tapez 1"<<endl;
cout<<"Si Vous Voulez Supprimer Un Vehicule Tapez 2"<<endl;
cout<<"Si Vous Voulez Rechercher Un Vehicule Tapez 3"<<endl;
cout<<"Si Vous Voulez Modifier Un Vehicule Tapez 4"<<endl;
cout<<"Si Vous Voulez Voir Les Statistiques D'un Vehicule Tapez 5"<<endl;
cout<<"Si Vous Voulez Quiter Tapez 6"<<endl;
 
Vehicule();
Bateau();
Helicoptere();
Vehicule_Roulant();
Facture_Client();
Facture_Parc();
Bateau::Affiche();
cin>>k;
return 0;
}



et voici le code de ma classe
#include "StdAfx.h"
#include "Bateau.h"
#include "iostream"
 
using namespace std;
 
Bateau::Bateau(void)
{
 cout<<"Ceci est le Constructeur de la Classe Bateau"<<endl;
}
 
 
 
Bateau::~Bateau(void)
{
 cout<<"Ceci est le Destructeur de la Classe Bateau"<<endl;
 
}
void Bateau::Saisie()
{
cout<<"Fonction saisie de Bateau"<<endl;
}
void Bateau::Affiche()
{
cout<<"Fonction Affiche de Bateau"<<endl;
}



j'ai pas encore préciser ce qu'il fallait saisir jusqu'à ce que je teste que les fonctions sont bel et bien appelé .Je travaille sous visual studio 2010

3 réponses

cptpingu
Messages postés
3834
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
20 octobre 2021
124
15 avril 2012 à 20:26
Bonjour.

Tu n'as vraiment pas compris la programmation objet, non ? Essaie de revoir les cours sur la POO, par exemple sur le site du zéro, ça pourrait bien t'aider.

Pour répondre à ta question:
Tu essaies d'appeler des méthodes, sans créer l'objet associé, ça ne peut donc pas fonctionner.
Pour appeler la méthode "affiche", il faudrait plutôt quelque chose du genre:
Bateau b;
b.affiche();


"b::affiche", ne s'emploie que si la méthode est marquée "static", ce qui n'est pas le cas ici.

Quelques conseils:
- Évite les "using namespace", voir: http://0217021.free.fr/portfolio/axel.berardino/articles/bon-usage-using-namespace
- Un main s'écrit "int main(int argc, char** argv)"
- Les includes systèmes utilisent <> plutôt que "". Ex: #include
- En C++, une fonction qui ne prend pas d'arguments, s'écrit () et non (void). Ex: "Bateau::Bateau()" et non "Bateau::Bateau(void)"

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
1