|
Программирование >> Расширенная версия языка c++
Проверкаусвоения материала главы 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. Может ли быть инициализирован массив, память для которого выделяется динамически?
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |