What are you using to compile this? If there’s an undefined reference error, usually it’s because the .o file (which gets created from the .cpp file) doesn’t exist and your compiler/build system is not able to link it.
Also, in your card.cpp, the function should be
Card::Card() instead of
void Card. The
Card:: is scoping; it means that your
Card() function is a member of the Card class (which it obviously is, since it’s the constructor for that class). Without this, void Card is just a free function. Similarly,
void Card(Card::Rank rank, Card::Suit suit)
Card::Card(Card::Rank rank, Card::Suit suit)
Also, in deck.cpp, you are saying
#include "Deck.h" even though you referred to it as deck.h. The includes are case sensitive.