c ++ symbol not found when implementing the stack

I implement a stack with nodes. I'm working on the knot class. My professor asks me to write a base node class that uses a blank pointer, and a child class myNode that's used as a template (I know it's extra work, but he wanted us to learn the concepts of the empty pointer and stack ).

Here's the code (I'll abbreviate it because I just have a similar problem in my code)

node.h

Class node {
Public:
Node();
Node (void * ptr);
void setDataPtr (void * ptr);

Private:
void * dataPtr;
Node * next;
}

node.cpp

#include "node.h"

node :: node ()
{
dataPtr = next = nullptr;
}

node :: node (void * ptr)
{
dataPtr = ptr;
next = nullptr;
}

void node :: setDataPtr (void * ptr) {
dataPtr = ptr;
}

mynode.h

#include "node.h"
template 
Class myNode: public node
{
Public:
myNode (const T & data = T ());

};

template 
myNode:: myNode (const T & data)
{
node :: setDataPtr (new T (data));
}

main.cpp

#include "mynode.h"
int main ()
{
myNode j (& # 39; 1);
}

The problem I encounter is isis

Undefined icons for the x86_64 architecture:
"node :: setDataPtr (void *)", referenced by:
myNode:: myNode (char const &) in main.cpp.o
"node :: node ()", referenced by:
myNode:: myNode (char const &) in main.cpp.o
ld: Icon (s) for architecture x86_64 not found
clang: error: linker command failed with exit code 1 (use -v to display the call)

I do not understand this mistake at all. I would be glad if someone could help me with what it is. Many thanks!