Class en c++
Résolu
yoshis94
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
bonjour j'avais un poste assez similaire mais pas avec la fonction class;
Voila j'aimerais saisir des infos sur mon ordinateur du type:marque taille ecran...,et les ranger dans une class a.ordinateur mais voila je ne comprend pas du tout comment je doit faire j'ai ecris un code que voila:
#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;
class ordinateur {public:
char marque[10];char model[10];float proscesseur;int ram;int dd;char ecran[10];int taille;
void saisie();
void affichage();
};
ordinateur a;
int main ()
{
a.saisie();
a.affichage();
return 0;
}
void affichage()
{
cout<<"les informations saisie sont: "<<endl;
cout<<a.marque<<endl;
cout<<a.model<<endl;
cout<<a.proscesseur;
cout<<a.ram<<endl;
cout<<a.dd<<endl;
cout<<a.ecran<<endl;
cout<<a.taille<<endl;
}
void saisie()
{
cout<<"Quel est la marque de l'ordinateur: "<<endl;
cin>> a.marque;
cout<<endl<<"le model:"<<endl;
cin>>a.model;
cout<<endl<<"la vitesses du proscesseur:"<<endl;
cin>>a.proscesseur;
cout<<endl<<"quel est la taille de votre memoire vive en MO:"<<endl;
cin>>a.ram;
cout<<endl<<"la taille de votre disque dur en GO:"<<endl;
cin>>a.dd;
cout<<endl<<"la marque de votre ecran:"<<endl;
cin>>a.ecran;
cout<<endl<<"et ca taille en pouce:"<<endl;
cin>>a.taille;
}
NE PAS TENIR COMPTE DES INCLUDE!
quand je compile j'ai une erreur :
/usr/bin/ld: Undefined symbols:
ordinateur::saisie()
ordinateur::affichage()
collect2: ld returned 1 exit status
enfin bon j'essaye de comprendre les class et je n'avancepas.
Voila j'aimerais saisir des infos sur mon ordinateur du type:marque taille ecran...,et les ranger dans une class a.ordinateur mais voila je ne comprend pas du tout comment je doit faire j'ai ecris un code que voila:
#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;
class ordinateur {public:
char marque[10];char model[10];float proscesseur;int ram;int dd;char ecran[10];int taille;
void saisie();
void affichage();
};
ordinateur a;
int main ()
{
a.saisie();
a.affichage();
return 0;
}
void affichage()
{
cout<<"les informations saisie sont: "<<endl;
cout<<a.marque<<endl;
cout<<a.model<<endl;
cout<<a.proscesseur;
cout<<a.ram<<endl;
cout<<a.dd<<endl;
cout<<a.ecran<<endl;
cout<<a.taille<<endl;
}
void saisie()
{
cout<<"Quel est la marque de l'ordinateur: "<<endl;
cin>> a.marque;
cout<<endl<<"le model:"<<endl;
cin>>a.model;
cout<<endl<<"la vitesses du proscesseur:"<<endl;
cin>>a.proscesseur;
cout<<endl<<"quel est la taille de votre memoire vive en MO:"<<endl;
cin>>a.ram;
cout<<endl<<"la taille de votre disque dur en GO:"<<endl;
cin>>a.dd;
cout<<endl<<"la marque de votre ecran:"<<endl;
cin>>a.ecran;
cout<<endl<<"et ca taille en pouce:"<<endl;
cin>>a.taille;
}
NE PAS TENIR COMPTE DES INCLUDE!
quand je compile j'ai une erreur :
/usr/bin/ld: Undefined symbols:
ordinateur::saisie()
ordinateur::affichage()
collect2: ld returned 1 exit status
enfin bon j'essaye de comprendre les class et je n'avancepas.
A voir également:
- Class en c++
- Ajoutez à la liste de contacts ana le goff, inscrite le 27 novembre 2015, dans la catégorie i. puis triez les contacts en les classant : par ordre alphabétique de leur nom de famille (critère principal), puis par date du plus récent au plus ancien (critère secondaire). quel mot apparaît à la verticale dans la colonne "catégorie" entre les lignes 200 et 209 (en-tête compris) ? ✓ - Forum Word
- Realtek audio background process class ✓ - Forum Wordpress
- Class ram - Guide
- Realtek audio admin background process class ✓ - Forum Windows
- Wrong elf class: elfclass64 - Forum Autres distributions Linux
4 réponses
bon dite moi si j'ai faux dans ma demarche:
on crée une class:
class nom_de_la_class(public: element de la class;..;...;
public:
fonctions_membres de la class()
{
elements de la fonction
}
);
definition d'un element de la class:
nom_de_la_class element;
fonction main()
{
appel d'une fonction membre:
element.fonction_membre();
}
est-ce que ma methode ce tiens ou non est-ce que je dois revoir ma copie
???
merci pour vos futur reponses
on crée une class:
class nom_de_la_class(public: element de la class;..;...;
public:
fonctions_membres de la class()
{
elements de la fonction
}
);
definition d'un element de la class:
nom_de_la_class element;
fonction main()
{
appel d'une fonction membre:
element.fonction_membre();
}
est-ce que ma methode ce tiens ou non est-ce que je dois revoir ma copie
???
merci pour vos futur reponses
1 / où est le prototype ?
2/ où sont déclarées les instances de model, ram, ecran, dd, taille ?
3/ quel est l'intérêt à faire hériter une classe des propriétés
de simples variables (int char float) n'étant pas des objets
mais des types intégrés au langage ?
4/ même en admetant que ce soient des objets, un objet n'hérite pas d'instances mais de types
5/ qu'est-ce qu'un type et qu'est ce qu'une instance ?
int est le type de variable, et a est un instance de type integer
class déclare un type d'objet
de toute évidence, il faut que tu apprennes ce que sont
- le type
- l'instance
afin de pouvoir comprendre
- l'encapsulation
qui est la première des 3 étapes pour comprendre l'objet.
2/ où sont déclarées les instances de model, ram, ecran, dd, taille ?
3/ quel est l'intérêt à faire hériter une classe des propriétés
de simples variables (int char float) n'étant pas des objets
mais des types intégrés au langage ?
4/ même en admetant que ce soient des objets, un objet n'hérite pas d'instances mais de types
5/ qu'est-ce qu'un type et qu'est ce qu'une instance ?
int a;
int est le type de variable, et a est un instance de type integer
class déclare un type d'objet
de toute évidence, il faut que tu apprennes ce que sont
- le type
- l'instance
afin de pouvoir comprendre
- l'encapsulation
qui est la première des 3 étapes pour comprendre l'objet.
merci pour ta reponse
je me replonge dans mon bouquin pour essayé de bien saisir ce qu'est un objet car la je rame.
lorque je serai un peu plus pres je referais surface.
je me replonge dans mon bouquin pour essayé de bien saisir ce qu'est un objet car la je rame.
lorque je serai un peu plus pres je referais surface.
je te propose:
class ordinateur {
char marque[10];char model[10];float proscesseur;int ram;int dd;char ecran[10];int taille;
public:
void saisie();
void affichage();
};
ordinateur a;
int main ()
{
a.saisie();
a.affichage();
return 0;
}
void ordinateur::affichage()
{
cout<<"les informations saisie sont: "<<endl;
cout<<marque<<endl;// lignes modifier : plus de "a."
cout<<model<<endl;
cout<<proscesseur;
cout<<ram<<endl;
cout<<dd<<endl;
cout<<ecran<<endl;
cout<<taille<<endl;
}
void ordinateur::saisie()
{
cout<<"Quel est la marque de l'ordinateur: "<<endl;
cin>> marque;// lignes modifier : plus de "a."
cout<<endl<<"le model:"<<endl;
cin>>model;
cout<<endl<<"la vitesses du proscesseur:"<<endl;
cin>>proscesseur;
cout<<endl<<"quel est la taille de votre memoire vive en MO:"<<endl;
cin>>ram;
cout<<endl<<"la taille de votre disque dur en GO:"<<endl;
cin>>dd;
cout<<endl<<"la marque de votre ecran:"<<endl;
cin>>ecran;
cout<<endl<<"et ca taille en pouce:"<<endl;
cin>>taille;
}
voila comment je corrige ton programme. J'ai déplacer le public pour qu'on ne puisse pas acceder directement aux donnés.
l'implementation d'une méthode se fait en précisant la portée car si tu as :
class A{void saisie();...}
et class B{void saisie();...}
comment le compilo fait pour savoir à qui corespond l'implémentation
void saisie(){...} ?
class ordinateur {
char marque[10];char model[10];float proscesseur;int ram;int dd;char ecran[10];int taille;
public:
void saisie();
void affichage();
};
ordinateur a;
int main ()
{
a.saisie();
a.affichage();
return 0;
}
void ordinateur::affichage()
{
cout<<"les informations saisie sont: "<<endl;
cout<<marque<<endl;// lignes modifier : plus de "a."
cout<<model<<endl;
cout<<proscesseur;
cout<<ram<<endl;
cout<<dd<<endl;
cout<<ecran<<endl;
cout<<taille<<endl;
}
void ordinateur::saisie()
{
cout<<"Quel est la marque de l'ordinateur: "<<endl;
cin>> marque;// lignes modifier : plus de "a."
cout<<endl<<"le model:"<<endl;
cin>>model;
cout<<endl<<"la vitesses du proscesseur:"<<endl;
cin>>proscesseur;
cout<<endl<<"quel est la taille de votre memoire vive en MO:"<<endl;
cin>>ram;
cout<<endl<<"la taille de votre disque dur en GO:"<<endl;
cin>>dd;
cout<<endl<<"la marque de votre ecran:"<<endl;
cin>>ecran;
cout<<endl<<"et ca taille en pouce:"<<endl;
cin>>taille;
}
voila comment je corrige ton programme. J'ai déplacer le public pour qu'on ne puisse pas acceder directement aux donnés.
l'implementation d'une méthode se fait en précisant la portée car si tu as :
class A{void saisie();...}
et class B{void saisie();...}
comment le compilo fait pour savoir à qui corespond l'implémentation
void saisie(){...} ?
Ce que je fait dans ce cas la, pour débugger, c'est de tout mettre en public. Comme ça, tu peux faire un cout<<a.X et vérifier que c'est bien la bonne valeur qui a été prise.rajoute éventuellement de cout dans la fonction saisie.
Une idée, tu peux aussi surcharger l'opérateur '<<' pour pouvoir faire directement : cout<<a
ce qui permet d'avoir quelque chose de plus utilisable pour quelqu'un qui utiliserai ta classe., de te familiariser avec la notion de fonction amie, et de flux.
ostream& operator<<(ostream&, ordinateur);
bonne chance pour la suite de ton prog.
Une idée, tu peux aussi surcharger l'opérateur '<<' pour pouvoir faire directement : cout<<a
ce qui permet d'avoir quelque chose de plus utilisable pour quelqu'un qui utiliserai ta classe., de te familiariser avec la notion de fonction amie, et de flux.
ostream& operator<<(ostream&, ordinateur);
bonne chance pour la suite de ton prog.