Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Самоучитель С++ - Шилдт Г.

Шилдт Г. Самоучитель С++ — Спб.: БВХ-Петербург, 2003. — 688 c.
ISBN 5-7791-0086-1
Скачать (прямая ссылка): samouchitelc2003.djvu
Предыдущая << 1 .. 167 168 169 170 171 172 < 173 > 174 175 176 177 178 179 .. 206 >> Следующая

2. Категория защищенности позволяет сохранить закрытость определенных членов базового класса, оставляя, тем не менее, возможность доступа к ним из производного класса.
3. Нет.
7.3
1. #include <iostream>
#include <cstring> using namespace std;
class raybase {
char str(90]; public:
mybase(char *s) { strcpy(str, s); J
char *get() { return str; }
);
class myderived: public mybase { int len; public:
myderived(char *s): mybase(s) { len = strlen(s);
)
int getlenO { return len; }
void show() { cout « get () << * \n' ; }
};
Приложение В. Ответы на вопросы и решения упражнений int main ()
{
myderived ob ( "привет") ; ob _ show() ;
cout << ob.getlenO « ’\n';
return 0;
2. #include <iostream>
:sing namespace st
// Базовый класс для бил ей разных типов
class vehicle {
int num__wheels; int range ; public:
vehicle (int w, int r)
І
num_wheels = w; range = r;
} _
void showv ( )
{
cout << "Число колес: |Г << n'om_wheels << '\n
COUt << "Грузоподъемность: " << range << 1\n
I
class car: public vehicle { int passengers; public:
car (int p, int w, int r) : vehicle (w, r)
{
passengers = p;
}
void show ( )
{
showv(} ;
cout << "Пассажироемкость: ,r << passenger
I
};
class truck: public vehicle ( int loadlimit; public:
truck (int 1, int w, int r) : vehicle (w, r)
572.
Самоучитель C++
I
loadlimit — 1;
void show( )
(
showv();
cout << "Пробег: " << loadlimit << 1 \n 1 ;
>
і;
int main ()
{
car с (5, 4, 500) ; truck t (30000, 12, 1200);
cout << "Легковушка: \n"; c.show () ;
cout « "\пГрузовик: \n,r; t.show() ;
return 0;
)
7.4
1. Работа конструктора A Работа конструктора В Работа конструктора С Работа деструктора С Работа деструктора В Работа деструктора А
2. #include <iostream>
using namespace std;
class A { int і ; public:
A(int a) { і = a; }
J;
class В { int j ; public:
В{int a) { j - a; }
};
Приложение В. Ответы на вопросы и решения упражнений____________________________________573
class С: public A, public В { int к; public:
C{int с, int b, int a) : A(a), B(b) { к = с;
J
ь-
7.5
2. Виртуальный базовый класс нужен тогда, когда производный класс наследует два (или более) класса, каждый из которых сам унаследовал один и тот же базовый класс. Без виртуального базового класса в последнем производном классе существовало бы две (или более) копии общего базового класса. Однако благодаря тому, что исходный базовый класс делается виртуальным, в последнем производном классе представлена только одна копия базового.
Проверка усвоения материала главы 7
1. ttinclude <iostreaitt>
using namespace std;
¦class building { protected;
int floors; int rooms; double footage;
class house: public building { int bedrooms; int bathrooms; public;
house (int f, int r, double ft, int br, int bth) { floors = f; rooms = r; footage = ft; bedrooms = br; bathrooms = bth;
}
void show() {
cout « "этажей: M « floors << '\n'; cout << "комнат: " << rooms << ’\n';
cout « "метраж: " « footage « 1 \n';
cout « "спален: " << bedrooms << 1 \nT;
cout << "ванн: " « bathrooms << * \n';
)
h
574
Самоучитель C++
class office: public building {
int phones;
int extinguishers; public:
office (int f, int r, double ft, int p, int ext) ( floors = f; rooms = r; footage = ft; phones = p; extinguishers = ext;
}
void showf) (
cout << "этажей: ,r << floors << 1 \n';
cout « "комнат: " « rooms << 1 \n';
cout « "метраж: " << footage << ’ \n’ ;
cout « "телефонов: " << phones « ’ \n’;
cout « "огнетушителей: ,f « extinguishers << 1 \n';
}
);
int main ()
{
house h_Gb(2, 12f 5000, 6, 4) ;
office 0_Gh(4, 25, 12000, 30, 8) ;
cout << "Жилой дом: \n";
hjob , show( ) ;
cout « ,г\пОфис: \nu f
o__ob. show (} ;
return 0;
2. Если базовый класс наследуется как открытый, открытые члены базового класса становятся открытыми членами производного класса, а закрытые члены базового класса остаются закрытыми. Если базовый класс наследуется как закрытый, все члены базового класса становятся закрытыми членами производного.
3. Члены> объявленные как защищенные (protected), являются закрытыми членами базового класса, но могут наследоваться (и к ним можно иметь доступ) любым производным классом. При наследовании со спецификатором доступа protected все открытые и защищенные члены базового класса становятся защищенными членами производного класса.
Предыдущая << 1 .. 167 168 169 170 171 172 < 173 > 174 175 176 177 178 179 .. 206 >> Следующая