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

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

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

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

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

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

Шилдт Г. Самоучитель С++ — Спб.: БВХ-Петербург, 2003. — 688 c.
ISBN 5-7791-0086-1
Скачать (прямая ссылка): samouchitelc2003.djvu
Предыдущая << 1 .. 150 151 152 153 154 155 < 156 > 157 158 159 160 161 162 .. 206 >> Следующая

void push (char ch) ; // помещает в стек символ
char pop О; // выталкивает из стека символ private:
char stck[SIZE]; // содержит стек
'int tos; // индекс вершины стека
};
// Инициализация стека stack::stack()
{
cout « "Работа конструктора стека \п"; tos=0;
}
// Помещение символа в стек void stack::push(char ch)
Приложение В. Ответы на вопросы и решения упражнений_
493
Ї
if (tOS==SIZE) {
cout « "Стек полон \п"; return;
stck[tos] = ch; tos++;
J
// Выталкивание символа из стека char stack::pop()
{
if (tos==0) {
cout « "Стек пуст \n";
return 0; // возврат нуля при пустом стеке
)
tos—;
return stck[tos];
t
int main(}
і
,// образование двух, автоматически инициализируемых, стеков stack si, s2; int і ;
зі-push('а'); s2.push(’xr); si.push('b1); s2.push('yT); si.push{’c1); s2.push{'2’);
for(i=0; i<3; i++) cout << "символ из стека si:’* « si. pop О << " \n";
for(i=0; i<3; i++) cout << "символ из стека s2:" << s2.pop() << "\n";
return 0;
)
2. #include <iostream>
using namespace std;
union swapbytes {
unsigned char с[2]; unsigned i;
swapbytes(unsigned x);
494 _ _ _ Самоучитель C++
void swp{) ;
};
swapbytes f : swapbytes(unsigned x}
{
і = x; void swapbytes: :swpO
{
unsigned char temp;
temp = с[0];
с [0] = с [ 1 ];
c[l] = temp;
}
int main()
{
swapbytes ob(l) ;
ob. swp (} ; cout « ob.i;
return 0;
1
3. Анонимное объединение представляет собой особый синтаксический механизм, который позволяет двум переменным совместно использовать одну и ту же область памяти. Доступ к членам анонимного объединения можно реализовать непосредственно, без ссылки на объект. Члены анонимного объединения находятся в той же области видимости, что и само объединение.
2.6
1, #include <iostream>
using namespace std;
/ / Перегрузка функции abs () тремя способами
/ / Функция abs () для целых inline int abs(int n}
cout « "В функции abs () для int\n"; return n<0 ? -n: n;
)
/ / Функция abs () для длинных целых inline long abs (long n)
Приложение В. Ответы на вопросы и решения упражнений _ 495
{
cout « "В функции abs () для long\n";
. return n<0 ? -n: n;
t
// Функция abs{) для вещественных двойной точности inline double abs (double n)
I
cout « "В функции abs () для double\n"; return n<0 ? -n: n;
і
int mainO
I
cout << "Абсолютная величина -10:" << abs (-10) << "\n";
cout << "Абсолютная величина -10L;" << abs (~10L) « M\n,r;
cout « "Абсолютная величина -10.01; tT << abs (-10.01) << n\n";
return 0;
2. Функция не может быть встраиваемой, поскольку содержит цикл for. Большинство компиляторов не поддерживает встраиваемые функции с циклами.
2.7
1. #include <iostream>
using namespace std;
ttdefine SI2E 10
/ / Объявление класса stack для символов class stack {
char stck[SIZE]; // содержит стек
int tos; // ивдекс вершины стека
public:
stack () { tos - 0; }
void push(char ch)
{
if (tos==SIZE) {
cout « "Стек полон" ; return;
}
stck[tos]=ch; tos++;
I
496 _ _ Самоучитель C++
char pop () і
if (tos==0) {
cout « "Стек nycr";
return 0; // возврат нуля при пустом стеке
}
tos-~;
return stck[tos];
int main ()
?
// образование двух, автоматически инициализируемых, стеков stack si, s2; int і ;
sl.push( ’a') ; s2.push('x') ; si.push('b'); s2.push( ’y'} ; si.push. ( 1 c’) ; s2.push('2');
for(i=0; i<3; i++) cout « "символ из стека si:'1 « sl.popO «
" \n";
for(i=0; i<3; i++) cout « "символ иэ стека s2 : " << s2.pop() « "\n";
return 0;
1
2. ttinclude <iostream>
#include <cstring>
ttinclude <cstdlib> using namespace std;
class strtype { char *p; int len; public:
strtype (char *ptr) f
len = strlen(ptr); p=(char *) malloc(len + 1) ¦, if(!p) {
cout << "Ошибка выделения ламятиХп”;
exit {1) ;
}
Приложение В. Ответы на вопросы и решения упражнений_______________________________497
Strcpyipf ptr);
)
^strtype () ( cout « "Освобождение p\n"; free (p) ; }
void show()
cout « p << Tl — длина: ,f << len;
cout «
]
\f
int main О I
Предыдущая << 1 .. 150 151 152 153 154 155 < 156 > 157 158 159 160 161 162 .. 206 >> Следующая