Recently I've been learning how to create methods within classes so that I only have to write a method once and for each of that class I instantiate I can call the one method and it will work only on the variables of the object that called it, I know how to do this when only using main.cpp and no headers however I am confused on how I should be writing this when I use a class header and cpp.
I have a sample of code similar to what I want to achieve:  
#include <iostream>
using namespace::std;
class Object
{
public:
    int stuff;
    void manageStuff();
    Object();
};
void Object::manageStuff()
{
    stuff++;
}
Object::Object() : stuff(0) {}
Object object1, object2;
int main() {
  for (int i = 0; i < 10; i++)
  {
      object1.manageStuff();
      object2.manageStuff();
      cout << object1.stuff << "\n";
      cout << object2.stuff << "\n";
  }
}  
This works fine and allows me to have two instances of Object and a method that works independently for each instance, this is my current project:
main.cpp:  
#include <iostream>
#include "Test.h"
using namespace std;
int main()
{
    Test test;
    for (int i = 0; i < 10; i++)
    {
        test.count(); // Here's my error "undefined reference to Test::count"
    }
    return 0;
}  
Test.cpp
#include <iostream>
#include "Test.h"
using namespace std;
Test::Test()
{
    //ctor
}
Test::~Test()
{
    //dtor
}  
Test.h
#include <iostream>
#ifndef TEST_H
#define TEST_H
class Test
{
    public:
        Test();
        virtual ~Test();
        void count();
        int counter();
};
#endif // TEST_H  
and finally TestFunctions.h
#include <iostream>
#include "Test.h"
#ifndef TESTFUNCTIONS_H_INCLUDED
#define TESTFUNCTIONS_H_INCLUDED
void Test::count()
{
    Test::counter++;
    std::cout << Test::counter;
}
#endif // TESTFUNCTIONS_H_INCLUDED  
I'm sure that there will be something that's very obviously wrong to a more seasoned programmer and I'm about to look a bit thick but any help would be greatly appreciated
Thanks!
 
     
     
    