Might me a compiler issue .. I can't see really what's wrong .. I'll try to replicate this behaviour in a minute ..
Also have you considered using enums ? they sound more appropriate
-- Later edit:
You also have an error
remember that your code is case sensitive
you have: typedef int value;
but then you use:
Value CardValue() const;
it should be "value" not "Value" (same thing for Status and Suit in your Card.h)
After modifying Card.h (on my windows box

.. with gcc 3.4.2 (mingw)) .. everything compiled and worked