Salut.
Y a t-il une raison pour que le code suivant compile SANS le mot static devant mon map et ne compile plus si je le met.

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
class eboclass
{
public:
	static std::map<std::string, int (*)(eboclass *, int[])> _methods;
	string	_className;
 
public:
	void setMethod(string key, int (*test_somme)(eboclass *, int[]))
	{
		_methods.insert(std::make_pair(key, test_somme));
	}
 
	int callMethod(const char *method, int fct_param[])
	{
		return _methods[_className + "::" + method](this, fct_param);
	}
};
L'erreur est la suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
test.cpp:(.text._ZN8eboclass10callMethodEPKcP6ebovar[eboclass::callMethod(char const*, ebovar*)]+0x50): undefined reference to `eboclass::_methods'
byzarement c'est le method callMethod qui pose problème.
si je ne laisse que setMethod (qui elle aussi accède à _methods) ca fontionne !

PS: Si je sors ma variable static et que je la met en global ça fonctionne correctement.