Difficultés avec .h et .cpp
Résolu/Fermé
Debutant en webmastering
Messages postés
401
Date d'inscription
lundi 6 juin 2011
Statut
Membre
Dernière intervention
27 janvier 2021
-
7 août 2018 à 12:42
Debutant en webmastering Messages postés 401 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 27 janvier 2021 - 7 août 2018 à 16:51
Debutant en webmastering Messages postés 401 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 27 janvier 2021 - 7 août 2018 à 16:51
A voir également:
- Difficultés avec .h et .cpp
- L x l x h ✓ - Forum Loisirs / Divertissements
- Fichier h - Forum Programmation
- Dev cpp - Télécharger - Langages
- Modulo cpp ✓ - Forum C++
- Attrib –s –h –r /s /d ✓ - Forum Windows
2 réponses
Dalfab
Messages postés
703
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
1 mars 2023
100
7 août 2018 à 13:07
7 août 2018 à 13:07
Le problème ne provient pas de l'utilisation du header mais de qui y est inscrit.
Tu déclares dans le header des fonctions membres de
Alors quel est ton besoin ?
Tu déclares dans le header des fonctions membres de
monster(qui ne sont jamais définies ni utilisées), mais tu définis dans monster.c des fonctions simples, et dans dans
maintu appelles la fonction simple
ask(). Il n'y a donc aucune indication de cette fonction simple dans le header.
Alors quel est ton besoin ?
- une fonction simple, qu'il faut déclarer par
void ask();
dans le header, hors du typemonster
. On l'appelle en écrivant :ask();
. - une fonction de classe
monster
, qu'il faut déclarer dansmonster
parstatic void ask();
. Cette fonction sera commune à tous tesmonster
. On l'appelle en écrivantmonster::ask();
. - une fonction membre d'objet
monster
, qu'il faut déclarer dansmonster
parvoid ask();
. Cette fonction n'est utilisable qu'avec un objet du typemonster
. C'est ce que tu as écris. On l'appelle en écrivantun_monstre.ask();
.
Debutant en webmastering
Messages postés
401
Date d'inscription
lundi 6 juin 2011
Statut
Membre
Dernière intervention
27 janvier 2021
1
Modifié le 7 août 2018 à 17:01
Modifié le 7 août 2018 à 17:01
Merci pour ton aide; en effet, la fonction ask devait être dans le main car elle sert juste à vérifier l'intégrité des données pour instancier un monster
une fois les fonctions de monster.cpp mises dans le main et l'ajout du constructeur et destructeur dans le monster.cpp ça fonctionne
ce qui nous donne donc
merci pour l'aide apportée :)
une fois les fonctions de monster.cpp mises dans le main et l'ajout du constructeur et destructeur dans le monster.cpp ça fonctionne
ce qui nous donne donc
#main.cpp
//file .cpp containing the steps of my execution's program
#include "monster.h"
#include <iostream>
#include <string>
float isFloat ()
{
float i;
while( !( std::cin >> i ))
{
std::cin.clear();
std::cin.ignore(999,'\n');
std::cout << "Invalid type of data. Please enter it again : ";
}
return i;
}
int main()
{
std::string Name, Type, Description, Designer, Gender, Image;
float Hp, Weight, Size, Lvl, EvolutionLvl, Number;
std::cout << "on what monster would you update data ? ";
std::cin >> Name;
std::cout << "Type : ";
std::cin >> Type;
std::cout << "Description : ";
std::cin >> Description;
std::cout << "Designer : ";
std::cin >> Designer;
std::cout << "Gender : ";
std::cin >> Gender;
std::cout << "Image : ";
std::cin >> Image;
std::cout << "Hp : ";
Hp = isFloat();
std::cout << "Weight : ";
Weight = isFloat();
std::cout << "Size : ";
Size = isFloat();
std::cout << "Lvl : ";
Lvl = isFloat();
std::cout << "EvolutionLvl : ";
EvolutionLvl = isFloat();
std::cout << "Number : ";
Number = isFloat();
monster monster001(Name, Type, Description, Designer, Gender, Image, Hp, Weight, Size, Lvl, EvolutionLvl, Number);
monster001.display();
return 0;
};
---------------------------------------------------------------------------------------------------------------------------------------
#monster.cpp
//file .cpp w/ every step of my functions
#include "monster.h"
#include <iostream>
monster::monster(std::string Name, std::string Type, std::string Description, std::string Designer, std::string Gender, std::string Image,
float Hp, float Weight, float Size, float Lvl, float EvolutionLvl, float Number)
{
this->m_name = Name;
this->m_type = Type;
this->m_description = Description;
this->m_designer = Designer;
this->m_gender = Gender;
this->m_image = Image;
this->m_hp = Hp;
this->m_weight = Weight;
this->m_size = Size;
this->m_lvl = Lvl;
this->m_evolutionLvl = EvolutionLvl;
this->m_number = Number;
};
monster::~monster()
{
};
void monster::display()
{
std::cout << "Name : " << m_name << std::endl;
std::cout << "Type : " << m_type << std::endl;
std::cout << "Description : " << m_description << std::endl;
std::cout << "Designer : " << m_designer << std::endl;
std::cout << "Gender : " << m_gender << std::endl;
std::cout << "Image : " << m_image << std::endl;
std::cout << "Hp : " << m_hp << std::endl;
std::cout << "Weight : " << m_weight << std::endl;
std::cout << "Size : " << m_size << std::endl;
std::cout << "Lvl : " << m_lvl << std::endl;
std::cout << "EvolutionLvl : " << m_evolutionLvl << std::endl;
std::cout << "Number : " << m_number << std::endl;
};
merci pour l'aide apportée :)