Решение с методами Table :: row () и Table :: Row :: column () немного более читабельно (в общем) и позволяет однозначно создать метод Table :: column (), Table :: Класс Column (proxy) и метод Table :: Column :: row () позже, если это когда-либо понадобится. Это решение также позволяет легко находить все места, где есть доступ к строкам / столбцам, что намного сложнее, если вы используете перегрузку операторов.
Однако, как отмечали другие, второе решение менее типично и, на мой взгляд, не намного хуже в читаемости. (Может даже быть более читабельным в определенных ситуациях.)
Вам решать, хотя, я просто даю некоторые последствия обоих решений: -)