Программирование >>  Расширенная версия языка c++ 

1 ... 9 10 11 [ 12 ] 13 14 15 ... 227


42 Самоучитель C++

3. Напишите программу зующую стиль ввода/вывода C++, для ввода двух целых с клавиатуры и затем вывода на экран результата возведения первого в степень второго. (Например, пользователь вводит 2 и 4, тогда результатом будет 24, или 16.)

4. Создайте функции str() для изменения порядка следования символов строки на обратный. Перегрузите rev str() так, чтобы она могла вызываться с одним или двумя символьными строками. Если функция вызывается с одной строкой, то операция должна осуществляться с ней. Если она вызывается с двумя строками, то результирующая строка должна оказаться во втором аргументе. Например:

char sl[80], s2[a0];

strcpy(sl, привет );

rev str(sl, s2}; измененная строка оказывается в s2,

si не меняется

rev str(sll; измененная строка возвращается в si

5. Дана следующая программа, написанная в соответствии с новым стилем программирования на C++. Покажите, как превратить ее в программу старого стиля.

tinclude <iostream>

using namespace std;

int f (inta) ;

cout f (10) ; -

return 0; i

in int a) , .. - -.. . ,-Л: ,

return a * 3.1416; ) ...

- - .... ... ---

6. Что представляют собой данные типа bool?



Глава 2

Введение в классы


В этой главе вводятся понятия классов и объектов. В следующих нескольких важнейших разделах фактически описаны почти все аспекты программирования на С++, поэтому советуем вам читать повнимательнее.

Повторение пройденного

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

1. Напишите программу, использующую стиль ввода/вывода C++ для ввода строки и затем вывода на экран ее длины.

2. Создайте класс, который содержит информацию об имени и адресе. Храните всю эту информацию в символьных строках закрытой части класса. Включите в класс открытую функцию для запоминания имени и адреса. Таюке включите открытую функцию, которая выводит эти имя и адрес на экран. (Назовите эти функции sioreO и dispiay().)

3. Создайте перегружаемую функцию которая циклически сдвигает влево свой аргумент и возвращает результат. Перегрузите ее так, чтобы она работала с целыми (int) и длинными целыми (long). (Сдвиг по кольцу аналогичен обгчному сдвигу, за исключением того, что в1двигаем1й с одного конца слова бит появляется на другом его конце.)

4. Что неправильно в следующем фрагменте?

ttinclude <iostream> using namespace std;

class myclass {

int i; public:



44 Салоучтель C++

{ ...

myclass ob; ob.i = 10;

2.1. Конструкторы и деструкторы

Если вы писали очень длинные программы, то знаете, что в некоторых частях программы обычно требуется инициализация. Необходимость в инициализации еще более часто проявляется при работе с объектами. Действительно, если обратиться к реальным проблемам, то, фактически, для каждого создаваемого вами объекта требуется какого-то вида инициализация. Для разрешения этой проблемы в C++ имеется функция-конструктор (constructor fiincfion). включаемая в описание класса. Конструктор класса вызывается всякий раз при создании объекта этого класса. Таким образом, любая необходимая объекту инициализация при наличии конструктора выполняется автоматически.

Конструктор имеет то же имя, что и -<\ частью которого он является, и не имеет возвращаемого значения. Например, ниже представлен небольшой класс с конструктором:

ttinclude <iostream>

using namespace std; f i.- . .

class myclass { -...:> ., .. г j

int a; i r

public: , - :.

myclass [); конструктор

void 3how{) ;

myclass::myclass()

cou << В конструкторе\n ; a=10;

void {

cout << a;



1 ... 9 10 11 [ 12 ] 13 14 15 ... 227

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика