class DarkRaha extends com { // разработка приложений
            String a="Главная" b="Контакты" c="О сайте"
};

STL

основы

введение
Инструментарий
Проекты в C++
Комментарий
Утверждения
Идентификаторы
Область видимости
Литералы
Типы данных, переменные
Константы, перечисления
Выражения и операции
Агрегатные типы
Указатели
Ссылки
Массивы
Строки
Управляющие операторы
Функции
Аргументы функции

ООП

Терминология
Определение классов
Константные методы
Статические члены
Наследование
Инкапсуляция
Полиморфизм
Инициализация и уничтожение объектов
this

прочее

шаблоны
макросы
динамическая память
исключения
rtti

Справочник по C++

Инкапсуляция - cокрытие членов

Управление доступом к членам осуществляется следующими ключевыми словами:

Если класс определяется через ключевое слово struct, то по умолчанию члены имеют атрибут public. Если через слово class, то атрибут private.

Объекты одного типа имеют доступ к закрытым/защищенным членам друг друга. Это удобно для создания конструкторов копирования и операций присвоения.

Эти же ключевые слова используются при наследовании классов, чтобы указать новые атрибуты наследуемых членов, имеющих открытый или защищенный доступ.

При наследовании класса как public (по умолчанию), открытые члены остаются открытыми, защищенные остаются защищенными.

При наследовании класса как protected, открытые и защищенные становятся защищенными.

При наследовании класса как private открытые и защищенные члены становятся закрытми.


#include <iostream>
using namespace std; 

class MyClassParent {
int p1,p2;	

public: // все последующие члены открытые
int a,b;

MyClassParent(){p1=10; p2=20; a=50; b=60;}
int psum() {return p1+p2;}

} pcls;


class MyClass: protected MyClassParent {
public:	
int absum(){return a+b;}	
} cls;

int main() {

// ошибка, член p1 недоступен из вне	
// pcls.p1=23;	

// обращение к открытым членам
// нет ошибки	
pcls.a=20;
cout<<"pcls.psum()="<<pcls.psum()<<endl;

// ошибка, член а уже не открытый
// cls.a=20;

// обращение к открытому члену
// нет ошибки	
cout<<"cls.absum()="<<cls.absum()<<endl;

return 0;
}

Рейтинг@Mail.ru