|
|
|
|
Bonjour,
Voilà je commence en c++ et les notions ne sont pas encore tres claires, j'aurais besoin de votre aide....
Construire une Class Animal qui a pour attribut une chaine de 10
caracteres et un integer age
La class Animal a 3 constructeurs ayant pour parametre respectif
- un pointeur animal
- un entier
- une reference animal
La class Animal a pour fonction membre
Affiche qui affiche ses attributs et une fonction membre initage
qui prend un parametre entier pour mettre a jour l'age de
l'animal.
Faire une fonction main qui utilise toutes les fonctions
définies avec les objets suivants
Animal * A;
Animal An;
Ma soluce..beuk
#include <string>
class animal
{
int age;
adr-deb=newchar [10];
Class Animal
{
* Animal....
voila c'est un début mais bon.. :(
Configuration: Windows XP Firefox 3.0.11
J'ai cherché un peu plus, qu'en pensez vous ?
|
Je vais essayer de t'aider !!
class animal
{
private : // tu n'es pas oblige de le priciser
// quand tu declare ta classe avec "class" par defaut c private
//par contre si tu la declare struct , par default c public !!!
int m_age;
char nom[11];
public : // c oblige !!
//Les constructeurs
animal(int);
animal(int , char[]); // il vaut mieux comme ca !! :)
animal(animal &);
//Les autres méthodes
void affiche(); // tu n'est oblige de transmettre un type animal !!
void initage(int );
};
// definition des constructeurs
animal::animal(int a)
{
m_age = a ;
nom[0] = '\0';
}
animal::animal(int a,char name[])
{
m_age = a ;
strcpy(nom,name);
}
animal::animal(animal & anim)
{
m_age = anim.m_age;
strcpy(nom,anim.nom);
}
void animal::affiche()
{
cout << "le nom : " << nom << endl ;
cout << "l'age : " << m_age << endl ;
}
void animal::initage(int a)
{
m_age = a;
}
et voici un petit exemple !! :
animal chat(5);
animal chat1(7,"minouche");
animal chat2(chat1);
chat.affiche();
chat.initage(8);
chat.affiche();
chat1.affiche();
chat2.affiche();
Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire. |
Voila la 2eme partie, c'est une notion d'heritage mais ça reste confus pour moi
|
Soit la class domestique qui derive de animal et qui a un attribut identifiant entier
|
Désolé pour le retard.
class domestique : public animal
{
int id; // idnetifiant de la classe
public :
domestique(int,int); // constructeur de la classe !!
void affiche();
};
domestique::domestique(int age,int identif) :animal(age)
// ici il faut spécifier quel constructeur de la classe
// de base (la classe animal) appeler
{
// ici je suppose que le 1er c'est l'age
// et l'autre c'est l'indentifiant.
id = identif;
}
void domestique::affiche()
{
animal::affiche(); // pour acceder a la fonction affiche de la classe animal
/* si tu fais :
cout << nom ;
cout << m_age;
c'est faut ! parceque tu ne peux pas acceder aux membre déclarés private dans ta
classe de base !!
nom et m_age ne sont par defaut private.
*/
cout << "l'indentifiant : " << id << endl;
}
un exemple sur tout ça : domestique a(45,52); a.affiche(); ps : suite du premier code . Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire. |