Another option would be to make them static member functions. You would call them as
Code:
Coord c = World::RealToEffective(x,y);
Coord d = World::EffectiveToReal(x,y);
And they would be declared in the class declaration as
Code:
static Coord RealToEffective(int x, int y);
static Coord EffectiveToReal(int x, int y);
and defined the same way you define other member functions
Code:
Coord World::RealToEffective(int x, int y) { /* conversion done here*/ }
Coord World::EffectiveToReal(int x, int y) { /* conversion done here*/ }
Making the functions static in this way keeps them in the World class, as they are directly related to the functionality of the World, while allowing you to call the functions independant of any World instance.
The caveat is that they can not access any non-static World class data without having an instance of the class, just like a non-member function. So if they use some data from the World class to do the conversion then this would not work.