Appel non conforme d'une fonction membre non static
nourhene4
Messages postés9Date d'inscriptionjeudi 19 janvier 2012StatutMembreDernière intervention16 avril 2012
-
15 avril 2012 à 19:23
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023
-
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
A voir également:
C static
Static c - Meilleures réponses
Une référence de membre non statique doit être relative à un objet spécifique - Meilleures réponses
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 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
nourhene4
Messages postés9Date d'inscriptionjeudi 19 janvier 2012StatutMembreDernière intervention16 avril 2012 16 avril 2012 à 09:16
Merci Pour votre réponse.En ce qui concerne les remarques sur les include "" et Bateau(void) c'est comme ça que ça marche avec visual sutdio 2010.
Quant à Bateau b; b.affiche; merci c'est bien ça qui m'est échappé , je devrais certainement réviser mon cours
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 16 avril 2012 à 12:16
En ce qui concerne les remarques sur les include "" et Bateau(void) c'est comme ça que ça marche avec visual sutdio 2010.
Non, juste non. Visual est un éditeur, pas un compilateur. Le C++ est le même partout. Ce n'est pas parce que ça fonctionne (coup de chance, je n'entre pas dans les détails) que c'est la bonne manière de faire...
________________________________________________________________________
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