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

1 ... 42 43 44 [ 45 ] 46 47 48 ... 227


Проверкаусвоения материала главы

J

Теперь вам необходимо выполнить следующие упражнения и ответить на вопросы:

1. Ниже представлен класс a type. Создайте двумерный, два на пять, массив и дайте каждому элементу массива начальное значение по своему выбору. Затем выведите содержимое массива на экран.

clas vvv.i {

double a, b; . i

public:

a type (double x, double y) { a = x; b = y;

} -

void ShowO { cout a b \n ; }

2. Модифицируйте решение предыдущей задачи так, чтобы доступ к массиву твлялся через указатель.

3. Что такое указатель this?

4. Покажите основные формы операторов new ete. Какие преимущества они дают в сравнении с функциями та]1ос() и free()?

5. Что такое ссылка? Какое можно получите щество от использования ссылки в качестве параметра?

6. Создайте функции ip(), которая получает оди -ссылку на значение типа double. Эта функция должна изменить значение своего параметра на обратное. Напишите программу вывода на экран результатов

работы функции.

Проверка усвоения материала в целом

В этом разделе проверяется, хорошо ли вы усвоили материал этой и предыдущих глав.

1. Пусть дан указатель на объект. Какой оператор использовать для доступа к члену объекта?

2. В главе 2 была создана программа с классом в которой память для строки в]делялась динамически. Переделайте программу (показанную здесь для удобства) так, чтобы в ней использовались операторы new и delete.



142 . Самоучитель . C++:

ttinclude <iostreain> ttinclude <cstring>

#include <cstdlib>

using namespace std;

class -strtype { y- :

char *p;

int len; ,

public:

strtype(char*ptr) ; ,

-strtypeO;

void ShowO ;

strtype: ; strtype (char *ptr] :

len = strlen(ptr)

p=(char *) malloc (len+1);

if(!p) { . ,

cout Опшбка выделения памяти \n ; exit(l);

) .....

strcpy(p, ptr) ; . . . . . ; .

strtype; : ~strtype( ) > .-. .i .

cout Освобождение памяти по адресу p\n ; ... о

free(p);

void

cout p - длина: len; cout \n ;

strtype si { Это проверка ) , s2 ( Мне нравится С++ ) ;

si. ShowO; s2 , show () ;

return 0;

3. Переделайте любую программу из предьщущей главы так, чтобы в ней использовались ссылки.



Глава 5

Перегрузка функций


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

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

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

1. Что такое ссылка? Приведите две важных области применения ссылок?

2. Покажите, как с помощью оператора new выделить память для значений типа float и int. Покажите также, как освободить память с помощью оператора delete. .

3. Какова основная форма оператора new, используемая для инициализации динамических переменных? Приведите конкретный пример.

4. Дан следующий класс. Как инициализировать массив из десяти элементов так, чтобы переменная х получила значения от 1 до 10 включительно.

class samp ( ...... , ,

int x; - , . i . J

. public:

sump (int i) { x = n; } . ,

int getx () [ return x; }

5. Перечислите достоинства и недостатки

6. Может ли быть инициализирован массив, память для которого выделяется динамически?



1 ... 42 43 44 [ 45 ] 46 47 48 ... 227

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