Вы не можете инициализировать что-то в двух разных местах. В шапке просто объявите это:
Puzzle();
в файле .cpp определите его:
Puzzle::Puzzle() : puzzle( 16 )
{
// Initialize the puzzle (0,1,2,3,...,14,15)
for(int i = 0; i < puzzle.size(); i++)
{
puzzle[i] = i;
}
}
хотя вам, вероятно, было бы лучше не использовать список инициализации:
Puzzle::Puzzle()
{
// Initialize the puzzle (0,1,2,3,...,14,15)
for(int i = 0; i < 16; i++)
{
puzzle.push_back( i );
}
}