You can indeed put the .cpp file inside the header just after the definition. However, that is inadvisable (it's the same as including .cpp files).
You should write the class inline. Like:
Code:
class LinkedList
{
LinkedList() { /* My code here */ }
// ...
};
Also, to control access to functions and members, you don't need classes or anything such. Just use the public/private/protected keywords.
A struct simply defaults everything to public, so put protected/private everywhere you need to restrict access and you're good to go.