Weil es besser ist, ordnungsgemäß gekapselt zu sein und nur die Dinge zu öffnen, die benötigt werden, im Gegensatz dazu, dass alles standardmäßig geöffnet ist und es geschlossen werden muss.
Die Kapselung (das Ausblenden von Informationen) ist eine gute Sache und, wie die Sicherheit (z. B. das Sperren von Netzwerkdiensten), sollte der Standardwert eher gut als schlecht sein.
Das Design und die Entwicklung von C ++
2.10 Das Schutzmodell
Vor Beginn der Arbeit an C mit Klassen, ich arbeitete mit dem Betrieb Systeme. Die Begriffe des Schutzes aus dem Cambridge CAP Computer und ähnliche Systeme - und keine Arbeit in Programmiersprachen - inspiriert die C ++ - Schutzmechanismen. Das Klasse ist die Einheit des Schutzes und der Grundregel ist, dass Sie nicht können Gewähren Sie sich Zugang zu einer Klasse; nur die in der Klasse platzierten Deklarationen Erklärung (angeblich von seinem Besitzer) kann Zugriff gewähren. Standardmäßig alle Informationen sind privat.
Die Begründung lautet, dass die öffentlichen Teile einer Klasse explizit veröffentlicht werden sollten.
Das Interessante daran (für mich sowieso) ist, dass die erste Zeile nach der öffnenden Klammer vieler, vieler Klassendefinitionen public:
ist. Die meisten Leser einer Klasse sind an den öffentlichen Bits interessiert, da sie damit interagieren, und so viele Klassendefinitionen haben ihre öffentlichen Bits sowieso zuerst.
C ++ 's Zugriffsbezeichner gelten für den Bereich, der ihnen folgt - Ich denke, Java und C #' s Technik, jedes Mitglied die Sichtbarkeit des Mitglieds (mit einem vernünftigen Standard) zu spezifizieren, ist vorzuziehen.
Mit einem Wort, Verkapselung. Das Ziel besteht darin, private Implementierungsdetails (z. B. Datenelemente) privat zu halten. Nur explizit öffentliche API wird Clients der Klasse zur Verfügung gestellt.