Bonjour,
suite à une migration d'un programme C++ compilé avec Visual Studio vers gcc de Linux, j'ai du faire quelques changement dont un qui m'a surpris.

Sous Visual, voici le .h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
 
class A
{
...
   void Methode();
private:
   static const char TYPE='A';
};
Le .cpp, toujours avec Visual :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
void A::Methode()
{
   cout<<TYPE;
}
Avec gcc, TYPE est inconnu...il faut donc ajouter la déclaration pour étendre la portée, soit dans le .cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
const char A::TYPE;
Quelqu'un peut il m'éclairer sur ce sujet ? et si quelqu'un sait, que dit la norme POSIX ?

Merci