68952

Наслідування. Доступ до членів класу

Лекция

Информатика, кибернетика и программирование

Наслідування — один з наріжних каменів обєктно-орієнтованого програмування, оскільки воно дозволяє створювати ієрархічні класифікації Використовуючи Наслідування, можна створювати загальні класи, що визначають властивості, характерні для всієї сукупності споріднених класів.

Украинкский

2014-09-28

31.5 KB

0 чел.

Лекція № 14

Тема: Наслідування. Доступ до членів класу.

Наслідування — один з наріжних каменів об'єктно-орієнтованого програмування, оскільки воно дозволяє створювати ієрархічні класифікації Використовуючи Наслідування, можна створювати загальні класи, що визначають властивості, характерні для всієї сукупності споріднених класів. Ці класи можуть успадковувати властивості один у одного, додаючи до них свої власні унікальні характеристики.

Згідно стандартної термінології мови C++ клас, лежачий в основі ієрархії, називається базовим (base class), а клас, що успадковує властивості базового класу, — похідним (derived class). Похідні класи, у свою чергу, можуть бути базовими по відношенню до інших класів.

У мові C++ передбачений могутній і гнучкий механізм наслідування.

Управління доступом до членів базового класу

При наслідуванні члени базового класу стають членами похідного класу. Як правило, для наслідування використовується наступна синтаксична конструкція.

с1ass імя-похідного-класу: рівень_доступу імя-базового-класу

{

// тіло класу

}

Параметр рівень_доступу визначає статус членів базового класу в похідному класі. Як цей параметр використовуються специфікатори public, private або protected. Якщо рівень доступу не вказаний, то для похідного класу за умовчанням використовується специфікатор private, а для похідної структури - public. Розглянемо варіанти, що виникають в цих ситуаціях. (Специфікатор protected буде описаний в наступному розділі.)

Якщо рівень доступу до членів базового класу задається специфікатором publiс то всі відкриті і захищені члени базового класу стають відкритими і захищеними членами похідного класу. При цьому закриті члени базового класу не міняють свого статусу і залишаються недоступними членам похідного. Як демонструє наступна програма, об'єкти класу derived можуть безпосередньо посилатися на відкриті члени класу base.

#include <iostream>

using namespace std;

class base {

int i, j;

public:

void set(int а, int b) { i=a; j=b; }

void show() { cout « i << " " « j « "\n"; }

};

class derived : public base {

int k;

public:

derived(int x) { k=x; }

void showkO { cout « k « "\n"; }

};

int main() {

derived ob (3) ;

fcb.set(l, 2); // Звернення до члена класу base

ob.showO; // Звернення до члена класу base

job.showkO; // Звернення до члена класу derived

return 0 ;

}

Якщо властивості базового класу успадковуються за допомогою специфікатора доступу private, всі відкриті і захищені члени базового класу стають закритими ними похідного класу. Наприклад, наступна програма навіть не буде скомпільована, оскільки обидві функції set() і show() тепер є закритими членами класу derived.

Ця програма не буде скомпільована.

#include <iostream>

using namespace std;

class base {

int i, j ;

public:

void set (int а, int b) { i=a; j=b; }

void show() { cout « i « " " « j « "\n";}

};

 

Відкриті члени класу base є закритими членами класу derived.

class derived : private base {

int k;

public:

derived(int x) { k=x; }

};

void main() {

derived ob (3) ;

ob.set (1, pb.show());

// Помилка, доступ до функції set() заборонений.

ob.show();

// Помилка, доступ до функції show() заборонений.

}

При закритому наслідуванні всі відкриті і захищені члени базового класу стають закритими членами похідного класу. Це означає, що вони залишаються доступними членам похідного класу, але недоступні решті елементів програми, що не є членами базового або похідного класів.


 

А также другие работы, которые могут Вас заинтересовать

68762. Хозяйственное и деловое право 242.5 KB
  Хозяйственное право субъекты и основные положения по предпринимательской деятельности. Предметом хозяйственного права являются общественные отношения в сфере предпринимательской деятельности и связанные с ними не коммерческие отношения включая отношения по государственному регулированию экономики.
68763. Логика: Вопросы к экзамену 311.5 KB
  Согласившись с одними утверждениями, мы вынуждены принять и те, что из них следуют, независимо от того, нравятся они нам или нет, способствуют нашим целям или, напротив, препятствуют им. Допустив одно, мы тем самым автоматически лишаем себя возможности утверждать другое, несовместимое с уже допущенным.
68764. Медицинская психология 413.5 KB
  Подчеркивалось что врач должен уметь спокойно выслушивать больного быть на протяжении всего приема внимательным сердечным дружелюбным способствовать быстрейшему излечению больного и предупреждению рецидивов болезни. Вторые занимались устранением причин болезни.
68765. Предмет, содержание и задачи экономического анализа. Место и роль анализа в системе управления 523 KB
  Несмотря на то что страна перешла к рыночным отношениям до настоящего времени не выработан механизм оценки таких важных объектов анализа как оценка конкурентоспособности продукции условия цен на рынке изучение маркетинговой стратегии предприятия и т.
68766. МЕТОДЫ И УСТРОЙСТВА ИСПЫТАНИЙ АЭРОКОСМИЧЕСКОЙ ТЕХНИКИ 1.34 MB
  Технологии аэрокосмического приборостроения а также могут быть использованы студентами инженерных специальностей для совершенствования технологической подготовки в части проведения испытаний аппаратуры различного назначения....
68767. Базовые экономические понятия. Предмет и методология микроэкономического анализа 468 KB
  В общем виде рынок и рыночная экономика это система экономических отношений между людьми охватывающая прежде всего процесс производства товаров и услуг по рыночным законам а также процессы распределения обмена и потребления по законам рынка основными из которых являются закон стоимости закон...
68768. Материалы ж/б мостов, водоотвод, гидроизоляция 394.5 KB
  Бетон конструкции мостов подбирают в зависимости от требуемых условий прочности морозостойкости и в некоторых случаях водостойкости и водонепроницаемости. В зависимости от вида конструкции их армирования и условий работы класс бетона принимают в соответствии с требованиями приведенными в СНиП.
68769. Наладка. Общие сведения о пусконаладочных работах 505.5 KB
  В практике наладочных работ приходится измерять сопротивления от десятков микроом переходные сопротивления контактов до тысяч мегом – сопротивление изоляции. При этом взаимная индуктивность равна Наладка защитно-коммутационной аппаратуры Измерение сопротивления изоляции ЭО и...
68770. Всемирная история новейшего времени. 1945 – начало XXI века 1.54 MB
  Победа в Великой Отечественной войне вызвала подъем в общественно-политической жизни страны. Воплотившись в массовом энтузиазме, трудовом героизме рабочих, колхозников, интеллигенции, он стал одним из главных факторов, обеспечивших успешное восстановление народного хозяйства.