An #include directive is simply replaced with the contents of the specified file.
That means you now have two definitions of each x_tuple member function: one in main.cpp and one in rbtree.cpp.
Move the definitions inside the class declaration (which makes the compiler treat them as if they were declared inline, thus not subjecting them to the one definition rule) or move them into their own .cpp file.