Classe ?
Fermé
Belialis
-
Modifié par pijaku le 31/03/2014 à 13:08
Viking57 Messages postés 68 Date d'inscription jeudi 21 février 2013 Statut Membre Dernière intervention 28 juillet 2014 - 2 avril 2014 à 10:12
Viking57 Messages postés 68 Date d'inscription jeudi 21 février 2013 Statut Membre Dernière intervention 28 juillet 2014 - 2 avril 2014 à 10:12
A voir également:
- Classe ?
- Classe ram - Guide
- Retrouver photo de classe gratuitement - Forum Réseaux sociaux
- Bluetooth mercedes classe a 2005 - Forum Autoradio
- Retrouver la liste des élèves d'une classe - Forum Réseaux sociaux
- Impossible de trouver ou charger la classe principale @user_jvm_args.txt ✓ - Forum Réseaux sociaux
3 réponses
Viking57
Messages postés
68
Date d'inscription
jeudi 21 février 2013
Statut
Membre
Dernière intervention
28 juillet 2014
5
31 mars 2014 à 13:59
31 mars 2014 à 13:59
Bonjour, Dis moi tu n'aurais pas oublier d'initialiser MonRelai pour qu'il puisse utiliser des fonctions?
Comme ceci ?
Je peut pas testé a cette heure, pas les outils nécessaires, je teste demain
void Chargeur::demarrer_charge() : MonRelais
{
cout << "Demarrage de la charge" << endl;
MonRelais.ouvrir();
}
Je peut pas testé a cette heure, pas les outils nécessaires, je teste demain
Viking57
Messages postés
68
Date d'inscription
jeudi 21 février 2013
Statut
Membre
Dernière intervention
28 juillet 2014
5
1 avril 2014 à 16:21
1 avril 2014 à 16:21
par exemple
Relais MonRelais = new Relais();
MonRelais.ouvrir();
Relais MonRelais = new Relais();
MonRelais.ouvrir();
sambia39
Messages postés
610
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
9 février 2023
49
Modifié par sambia39 le 1/04/2014 à 23:30
Modifié par sambia39 le 1/04/2014 à 23:30
Bonsoir, tu est en Master informatique et tu fais des erreurs de débutant ?
Bref, c'est faux cet exemple, pourquoi parce qu'il y a déjà des erreurs dès le début.
Rappel
Votre soi-disant objet "Relais MonRelais()" est déclaré comme une fonction renvoyant un objet du type "Relais ", pour corriger cette petite erreur et utiliser votre objet "Relais" il faudrait écrire de la façon suivante:
Cependant quand je vois ça, je me demande vraiment qu'est-ce que l'ont vous apprend en master informatique ou tu à simplement oublier tes cours sur la programmation objet et les pointeurs.
Si on fait un accès avec ça
Un exemple pour essayer de comprendre
en-tête Classe
corps en-tête
fichier Principale
à bientôt
private: Relais MonRelais();
Bref, c'est faux cet exemple, pourquoi parce qu'il y a déjà des erreurs dès le début.
Rappel
private: Relais MonRelais();
Votre soi-disant objet "Relais MonRelais()" est déclaré comme une fonction renvoyant un objet du type "Relais ", pour corriger cette petite erreur et utiliser votre objet "Relais" il faudrait écrire de la façon suivante:
Relais MonRelais;.
Cependant quand je vois ça, je me demande vraiment qu'est-ce que l'ont vous apprend en master informatique ou tu à simplement oublier tes cours sur la programmation objet et les pointeurs.
Si on fait un accès avec ça
->donc tu doit initialiser ton objet comme ceci (rappel notion de Tas et Pile )
type objet = new type; objet->ouvrir(); /* et le contraire est */ type objet; objet.ouvrir();
Un exemple pour essayer de comprendre
en-tête Classe
#ifndef DEF_TESTE_H #define DEF_TESTE_H #include <iostream> class Chargeur; class Relais; /** * Class Relais */ class Relais{ public: Relais(void); ~Relais(void); void Ouvrir(void); void Fermer(void); }; /** * Class Chargeur */ class Chargeur{ public: Chargeur(void); ~Chargeur(void); void Demarer_Charge(); void Arreter_Charge(); private: /* deux cas d'exemple */ Relais *pRelais; Relais _Relais; }; #endif
corps en-tête
#include "Teste.h" Chargeur::Chargeur(void){ /* instance */ std::cout << "Constructeur de Chargeur" << std::endl; /* initialisation */ this->pRelais = NULL; this->pRelais = new Relais(); } Chargeur::~Chargeur(void){ std::cout << "Destructeur de Chargeur" << std::endl; delete this->pRelais; } void Chargeur::Demarer_Charge(void){ std::cout << "Demarage de la Charge " << std::endl; /* cas 1 */ this->pRelais->Ouvrir(); /* cas 2 */ _Relais.Ouvrir(); } void Chargeur::Arreter_Charge(void){ std::cout << "Arret de la Charge " << std::endl; /* Cas 1 */ this->pRelais->Fermer(); /* cas 2*/ _Relais.Fermer(); } /* Cas Classe Relais */ Relais::Relais(void){ std::cout << "Constructeur de Relais" << std::endl; } Relais::~Relais(void){ std::cout << "Destructeur de Relais" << std::endl; } void Relais::Ouvrir(void){ std::cout << "Ouverture du Relais" << std::endl; } void Relais::Fermer(void){ std::cout << "Fermeture du Relais" << std::endl; }
fichier Principale
#include <iostream> #include <cstdlib> #include "Teste.h" int main(void){ /* Premier Cas */ Chargeur *pChargeur = NULL; pChargeur = new Chargeur(); pChargeur->Demarer_Charge(); pChargeur->Arreter_Charge(); delete pChargeur; // Appel destructeur /* Juste pour La séparation des deux cas */ std::cout << " " << std::endl; std::cout << "####-> Deuxieme cas <-####" << std::endl; std::cout << " "<< std::endl; /** * Deuxieme cas & pas besoin de destructeur * il le fait automatiquement **/ Chargeur _Chargeur; _Chargeur.Demarer_Charge(); _Chargeur.Arreter_Charge(); return (0); }
à bientôt
Viking57
Messages postés
68
Date d'inscription
jeudi 21 février 2013
Statut
Membre
Dernière intervention
28 juillet 2014
5
2 avril 2014 à 10:12
2 avril 2014 à 10:12
oula oui ... je devais pas être réveiller hier ... oui erreur de débutant je m'en excuse