Agreed. A class should represent an interface rather than thinking in terms of their data members (which clients should not need to even know about).
In the vector 3D case though, the representation IS the interface.
You would use accessors for simple and obvious access functions if you think there may be a need for them later on though. (I've seen arguments saying it is easier to do a text search for an accessor rather than a member, however I dismiss that since you can comment out the member and the compile errors tell you where the member is used).