I have started programming with Java, I just achieved which I consider as a "good" level in matter of language knowledge.
For fun I decided to start programming using C++, I'm fairly new to this language but I'm a fast learner and I think it's not that far from Java.
I've created a test class which has a value and a name as attributes, and an objects counter as a global variable.
 #include<iostream>
/* local variable is same as a member's name */
class Test
{
    private:
       double x;
       std::string name;
       static int nb;
    public:
        Test(double x, std::string n)
        {
            this->x=x;
            this->name=n;
            nb=nb+1;
        }
       void setX (double x)
       {
           // The 'this' pointer is used to retrieve the object's x
           // hidden by the local variable 'x'
           this->x = x;
       }
       double getX()
       {
           return this->x;
       }
       std::string getName()
       {
           return this->name;
       }
       static int getNb()
       {
           return nb;
       }
};
int main()
{
   Test obj(3.141618, "Pi");
   std::cout<<obj.getX()<<" "<<obj.getName()<<" "<<Test::getNb()<<std::endl;
   return 0;
}
When executed the programm outputs this error :
In function `Test::Test(double, std::string)':
 (.text._ZN4TestC2EdSs[_ZN4TestC5EdSs]+0x4a): undefined reference to `Test::nb'
 (.text._ZN4TestC2EdSs[_ZN4TestC5EdSs]+0x53): undefined reference to `Test::nb'
In function `Test::getNb()':
 (.text._ZN4Test5getNbEv[_ZN4Test5getNbEv]+0x6): undefined reference to `Test::nb'
error: ld returned 1 exit status
some chinese to me.
I don't get it.