Class book

Primer 1 Лекция 13.

#include <iostream>

#include <string.h>

using namespace std;

{

public:

book(char *, char *, int);

int show_book();

private:

char title [64];

char author[64];

int pages;

};

book::book(char *title, char *author, int pages)

{

strcpy(book::title, title);

strcpy(book::author, author);

book::pages = pages;

}

int book::show_book()

{

cout << "Название: " << title << endl;

cout << "Автор: " << author << endl;

cout << "Страниц: " << pages << endl;

}

class library_card: public book

{

public:

library_card(char *, char *, int, char *, int);

int show_card();

private:

char catalog[64];

int checked_out;

};

library_card::library_card(char *title, char *author, int pages, char *catalog, int checked_out): book(title, author, pages)

{

strcpy(library_card::catalog, catalog);

library_card::checked_out = checked_out;

}

int library_card::show_card()

{

show_book();

cout << "Каталог: " << catalog << endl;

if (checked_out) cout << "Статус: проверена" << endl;

else cout << "Статус: свободна" << endl;

}

int main()

{

system("chcp 1251");

library_card card("C++", "Подбельский", 272, "101СРР", 1);

card.show_card();

system("pause");

}

highlightSyntax('cpp_22077','cpp'); Конструктор library _card вызывает конструктор класса book для инициализации элементов класса book. Использование функции-элемента show_book класса book внутри функции show_card. Поскольку класс library_card наследует методы класса book, функция show_card может вызвать этот метод (show_book) без помощи оператора точки, как если бы этот метод был методом класса library_card.

13.2. Защищенные элементы.

При изучении определений базовых классов можно встретить элементы, объявленные как public, private и protected (общие, частные и защищенные). Производный класс может обращаться к общим элементам базового класса, как будто они определены в производном классе. Производный класс не может обращаться к частным элементам базового класса напрямую. Для обращения к таким элементам производный класс использует интерфейсные функции. Защищенные элементы базового класса занимают промежуточное положение между частными и общими. Если элемент является защищенным, объекты производного класса могут обращаться к нему, как будто он является общим. Для оставшейся части программы защищенные элементы являются как бы частными. Единственный способ, с помощью которого программы могут обращаться к защищенным элементам, состоит в использовании интерфейсных функций. Следующее определение класса book использует метку protected, чтобы позволить классам, производным от класса book, обращаться к элементам title, author и pages напрямую, используя оператор точку:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: