Is there any particular reason that all data members in a class are private by default in C++?
In a word, encapsulation. The goal is to have private implementation details (such as data members) be private. Only explicitly public API is made available to clients of the class.