[C++] Quel genre d'erreur ?
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je voudrais vous demander gentiment c'est quoi ces deux lignes que la zone de mort affiche :
1>main.obj : error LNK2019: unresolved external symbol "public: void __thiscall compte::afficher(void)" (?afficher@compte@@QAEXXZ) referenced in function "public: void __thiscall compte_epargne::afficher(void)" (?afficher@compte_epargne@@QAEXXZ)
ex3tp5\Debug\ex3tp5.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://c:\Documents and Settings\khaoula\Mes documents\Visual Studio 2005\Projects\ex3tp5\ex3tp5\Debug\BuildLog.htm"
Les fichiers que j'ai écrit sont :
compte.h:
et main.cpp:
Merci.
Je voudrais vous demander gentiment c'est quoi ces deux lignes que la zone de mort affiche :
1>main.obj : error LNK2019: unresolved external symbol "public: void __thiscall compte::afficher(void)" (?afficher@compte@@QAEXXZ) referenced in function "public: void __thiscall compte_epargne::afficher(void)" (?afficher@compte_epargne@@QAEXXZ)
ex3tp5\Debug\ex3tp5.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://c:\Documents and Settings\khaoula\Mes documents\Visual Studio 2005\Projects\ex3tp5\ex3tp5\Debug\BuildLog.htm"
Les fichiers que j'ai écrit sont :
compte.h:
#include<iostream> using namespace std; class compte { protected: long num; double solde; public: void ajouter(double); void retirer(double); void afficher(); }; class compte_epargne : public compte { public: float taux; compte_epargne(long l, double s, float t) { num=l; solde=s; taux=t; } void ajouter(double s) { solde+=s; } void retirer(double s) { solde-=s; } void afficher() { compte::afficher() ; cout <<"interet"<<interet()<<endl ; } double interet() { return taux*solde; } }; class compte_courant : public compte { public: void ajouter(double s) { solde+=s; } void retirer(double s) { float temp; temp=solde-s; if(temp>-500) solde-=s; else cout <<"min 5D"<<endl; } void afficher() { cout<<"le numero du compte est : "<<num<<" et le solde est : "<<solde<<endl; } };
et main.cpp:
#include<iostream> #include"compte.h" int main() { compte_epargne C(15,1000,2); C.afficher(); return 0; }
Merci.
A voir également:
- [C++] Quel genre d'erreur ?
- Erreur 0x80070643 - Accueil - Windows
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Java code erreur 1603 ✓ - Forum Windows
- Comment recuperer whatsapp supprimé par erreur - Guide
4 réponses
Salut,
Ton compilateur cherche une définition de Compte::aficher() mais il ne la trouve pas. Pourtant il en a besoin ici dans compte_epargne:
Ton compilateur cherche une définition de Compte::aficher() mais il ne la trouve pas. Pourtant il en a besoin ici dans compte_epargne:
void afficher() { compte::afficher() ; cout <<"interet"<<interet()<<endl ; }
salut.
Dans ce que tu nous a donner, tu as déclaré compte::afficher(), mais tu ne l'as pas défini/implémenté.
Dans un .cpp supplémentaire, tu devrai avoir :
void compte::afficher(){...};
ou alors la déclarer "virtual" et ne pas l'appeler par la suite.
Remarque, dans tout les cas je pense qu'il faut la déclarer virtuelle étant donner que tu la redéfini dans les class dérivées.
Dans ce que tu nous a donner, tu as déclaré compte::afficher(), mais tu ne l'as pas défini/implémenté.
Dans un .cpp supplémentaire, tu devrai avoir :
void compte::afficher(){...};
ou alors la déclarer "virtual" et ne pas l'appeler par la suite.
Remarque, dans tout les cas je pense qu'il faut la déclarer virtuelle étant donner que tu la redéfini dans les class dérivées.