Bonjour à tous !


Je ne suis pas vraiment expert en C++... Mais je dois utiliser la fonction const_cast. Voila mon programme :

Mon fichier card.h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#ifndef card_h
#define card_h
 
#include <string>
 
 
/**********************************************************************************************************
 
                                                     Class card
                                                         
**********************************************************************************************************/
 
class card
{
      public:
             static const int vote;
             static int additional_vote;
 
      public:
             card(int add);
 
             // QUESTION 12: I need at least one virtual function to make my class "card" polymorphic and be able to use "dynamic_cast"
             virtual void vf_dynamic_cast();
 
};
 
#endif

Fichier card.cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <cstdlib>
#include <iostream>

#include "card.h"

using namespace std;


const int card::vote = 1;

Première question : puis-je caster "additional_vote" de cette manière ?
int card::additional_vote = 0;


Ensuite, mon problème se situe dans cette méthode. J'ai essayé 36000 écritures différentes... Celle qui d'après moi aurait été la meilleure est la suivante :
card::card(int add)
{
               int& test = *const_cast<int*>(&this->vote);
               this->additional_vote = test + add;
}


void card::vf_dynamic_cast()
{
     // Does not do anything
}

Je récupère une série de messages d'erreurs :
[Linker error] undefined reference to `card::card()'
Bref, je ne sais pas si j'ai été très clair... J'ai essayé de rendre mon problème le plus lisible possible.
Excusez moi de la forme, si celle-ci n'est pas adaptée.
Est-ce que quelqu'un saurait m'aider ?

Si vous avez des questions, je reste disponible.

Merci beaucoup pour toute implication, quelle qu'elle soit, par avance !


Kimy from Ireland.