תמיד היתה חשיבות ל"הסתרה"
אבל זה לא קשור לקונספט של אנקפסולציה. פעם היו עושים struct ככה-
/* Dear user of this package, Do NOT touch any of the members starting with underscore unless you really knows what you are doing. */ struct Whatever { /* public */ int visible; int known; int accessible; /* private */ int _hidden; int _secrent; int _limited; };
וראה איזה פלא, למרות שהקומפיילר לא הקפיד, אנשים לא נגעו בחברים ה"פרטיים" בלי אכיפה של הקומפיילר. בדר"כ בחרו תחילית מעצבנת כמו קו-תחתי כדי שמי שחוטא לא יגיד "לא שמתי לב". מצד שני, כבר נתקלתי במקרים של קוד C++ שהיה במחלקה חבר פרטי ומישהו אינטליגנט רצה לקבוע לו ערך, אז הוא פשוט חישב את האופסט המתאים יחסית ל this של האובייקט ושם בתא הזיכרון ערך מתאים. כמובן שהכל היה חוקי אל מול מוסכמות השפה והקומפיילר לא כעס. אז גם את האכיפה הזו אפשר לעקוף די בקלות אם רק רוצים. בסופו של דבר סוגיית הציבוריות היא בעיקר עניין של מוסכמה, וזו היתה קיימת עוד הרבה לפני C++.