Bonjour,
Je suis débutant en c++, j'ai acheté un livre pour apprendre mais il arrive que les exemples donnés pour comprendre le blabla aient des erreurs.
En général, avec un peu d'application, j'arrive à apporter une correction tout seul.
Mais pas ici. Voici l'exemple :
#include <iostream>
class Chat
{
public :
int LireAge ();
void DefAge (int age);
void Miauler ();
private :
int sonAge ();
};
// Lire age, méthode d'accès publique
// renvoie la valeur du membre sonAge
int Chat::LireAge ()
{
return sonAge; }
// Définition de DefAge,
// fonction d'accès publique
// définit le membre sonAge
void Chat::DefAge (int age)
{
//initialise la variable membre sonAge aec
// la valeur passée par le paramètre age
sonAge = age; }
// définition de la méthode Miauler
// renoie : void
// paramètres : Aucun
// rôle : afficher "Miaou" à l'écran
void Chat::Miauler ()
{
std::cout << "Miaou.\n";
}
// créer un objet Chat, définirson âge, le faire miauler,
// dire son âge, le faire miauler à nouveau.
int main()
{
Chat Frisky;
Frisky.DefAge (5);
Frisky.Miauler ();
std::cout << "Frisky est un chat qui a " << Frisky.LireAge () << " ans.\n";
Frisky.Miauler ();
return 0;
}
Le compilateur me met ceci :
f:\c++\poo\poo\poo.cpp(17) : error C3867: &'Chat::sonAge' : liste d'arguments manquante dans l'appel de fonction ; utilisez 'Chat::sonAge' pour créer un pointeur vers membre
f:\c++\poo\poo\poo.cpp(17) : error C2440: 'return' : impossible de convertir de 'int (__thiscall Chat::* )(void)' en 'int'
Aucun contexte dans lequel cette conversion est possible
f:\c++\poo\poo\poo.cpp(27) : error C2659: '=' : fonction comme opérande gauche