How to snap two objects together?

I am wanting to be able to place an objects on a 4x4 grid. However I want them to be able to snap to other placed objects if they are close by. My problem is they are all irregular objects so I am unable to think of a way to do this. Any pointers would be greatly appreciated.

Thanks

You could make the object a child of the other and they will move together.