En fait le cas de main est un peu particulier car en C++ un "return 0;" est ajouté automatiquement à la fin de main (mais seulement pour main, pas les autres fonctions).
Pour que tu comprenne bien les inclusions, un petit cours sur la gestion des projets avec plusieurs fichiers:
Une convention est de toujours inclure dans un .cpp le .hpp correspondant(du même nom) comme ça on peut utiliser tout ce qui a été déclaré dans le .hpp. Dans un .hpp on inclue seulement les .hpp dont on a réellement besoin, c'est à dire ceux qui définissent des types (struct ou class que tu verra plus tard) dont on a besoin. On a besoin d'un type dans un .hpp si on en fait autre chose que le déclarer par pointeur ou référence. Exemple:
http://pastebin.com/qpXsPQi4
Là on inclue que Ville.hpp car on a besoin pour définir Perso. On a pas besoin de Pays.hpp ni de Maison.hpp car on n'utilise que des pointeurs ou références dessus. Par contre il faut les forward-déclarer avant(les deux lignes avant struct Perso) pour indiquer qu'ils existent. Maintenant dans le fichier Perso.cpp:
http://pastebin.com/2uLsZjaK
Là on inclue Pays.hpp et Maison.hpp car on les utilise vraiment, on accède à des attributs (nom et adresse).
Ces règles peuvent être un peu pénible parce que ça oblige à faire beaucoup d'include dans les .cpp mais ça permet d'éviter des problèmes dont tu t'apercevra assez rapidement si tu ne les suit pas. J'ai pris la peine de te les expliquer car bizarrement c'est pas vraiment mis en avant dans les tutos et il vaut mieux prendre cette habitude rapidement.
Pour finir, on ne définit pas plus d'un type par fichier .hpp et .cpp en règle générale et on donne comme nom de fichier le nom du type(si il y en a un).
Si t'a bien compris ça dit-moi et je te ferai un exo dessus.
Pour la poo patience il faut d'abord que tu maîtrise bien les pointeurs.
Tu devrait suivre ce cours:
http://casteyde.christian.free.fr/cpp/cours/online/book1.html
C'est en français et bien expliqué et les aspects C++ viennent petits à petit. Tu vois que la partie POO vient assez loin.