- •Задание к программе 1.1
- •Задание к программе 1.2
- •*Задание к программе 1.3
- •*Задание к программе 1.4
- •2. Контрольные вопросы к лабораторной работе №1
- •Объектно-ориентированное программирование Лабораторная работа №2 Дружественные функции, перегрузка операций
- •1. Задание к лабораторной работе
- •Задание к программе 2.2
- •Задание к программе 2.3
- •*Задание к программе 2.4
- •2. Контрольные вопросы к лабораторной работе №2
- •Объектно-ориентированное программирование Лабораторная работа №3 Наследование
- •1. Задание к лабораторной работе
- •Задание к программе 3.1
- •2. Контрольные вопросы к лабораторной работе №3
*Задание к программе 1.3
Упражнения:
попробуйте получить доступ к статическому члену класса через экземпляр M[1];
продемонстрируйте доступ к членам класса через указатель на класс;
оформите определение класса в виде заголовочного файла worker.h, реализацию методов класса ‑ в виде файла worker.cpp, а главную функцию ‑ в виде файла prog3.cpp. Создать проект prog3.prj, в который включить файлы worker.cpp и prog3.cpp и выполнить многофайловую компиляцию.
Задания:
Первый вариант. Доработать методы и конструктор класса Worker таким образом, чтобы можно было задавать и учитывать производительность каждого из создаваемых объектов типа Worker. Определение конструктора сделать внешним (вне тела класса).
Второй вариант. Доработать класс Worker, введя в него еще один метод ‑ rest() (Отдых), который уменьшает количество денег у работника в зависимости от продолжительности отдыха. Определение метода display()сделать внешним (вне тела класса).
*Программа 1.4. В программе создан класс RECTANGLE (Прямоугольник), в котором реализованы методы вывода графического изображения прямоугольника, "стирания" его с экрана и перемещения. Для работы программы скопируйте в текущий директорий файл egavga.bgi из директория BGI пакета Borland C++v.3.1.
#include <conio.h>
#include <stdlib.h>
#include <graphics.h>
#include <iostream.h>
class RECTANGLE{
int left,top,right,bottom;
public:
RECTANGLE(int,int,int,int); //Конструктор
void show(); //Метод вывода изображения
void hide(); //Метод скрытия изображения
void move(int,int); //Метод перемещения изображения
};
RECTANGLE::RECTANGLE(int x1,int y1,int x2,int y2)
{
left=x1;
right=x2;
top=y1;
bottom=y2;
}
void RECTANGLE::show()
{
setcolor(LIGHTGREEN); //Функция установки цвета
rectangle(left,top,right,bottom);//Функция вывода фигуры
}
void RECTANGLE::hide()
{
setcolor(getbkcolor());
rectangle(left,top,right,bottom);
}
void RECTANGLE::move(int dx,int dy)
{
hide();
left+=dx; right+=dx;
top+=dy; bottom+=dy;
show();
}
int main()
{
int gdriver=DETECT,gmode,errorcode;
initgraph(&gdriver,&gmode,"");
errorcode=graphresult();
if(errorcode!=grOk)
{
cout<<"Graphics error:\n"
cout<<grapherrormsg(errorcode)<<endl;
cout<<"Press any key to halt\n";
getch();
exit(1);
}
int xmax=getmaxx();
int ymax=getmaxy();
RECTANGLE a(10,20,50,30);
a.show();
outtextxy(xmax/2,ymax-ymax/10,"Press any key...");
getch();
a.hide();
a.move(10,20);
getch();
a.move(100,100);
getch();
closegraph();
return 0;
}
*Задание к программе 1.4
Разработать метод класса extend(), который увеличивает площадь прямоугольника. Для демонстрации метода реализуйте в главной функции код, который в начале работы выводит прямоугольник в центре экрана, а затем постепенно увеличивает его до размеров экрана.
2. Контрольные вопросы к лабораторной работе №1
Что такое класс в языке С++? Для чего она применяется?
Дайте определения конструктора и деструктора класса.
Найдите ошибку:
В классе PRIMER объявлен прототип int PRIMER(int a, float pi);
Найдите ошибки:
class ABC{
int a=3;
int b;
int c;
public:
ABC(int n=1) {b=n;}
mul() {c=1+a*b;}
};
Можно ли в классе Matrix из программы 1.2 вместо существующего конструктора применить перегруженные конструкторы, если да, то как?
В каком случае значение одного объекта можно присвоить другому объекту.
Создайте класс RECTANGLE в программе 1.1 с помощью ключевого слова struct.
Чем отличаются статические члены класса от обычных?
Почему в приведенных выше классах не использовалось ключевое слово private?
Придумайте члены-функции доступа к защищенным членам класса Matrix. из программы 1.2.
Приведите примеры непосредственного доступа и доступа через указатель к членам-данным и членам-функциям экземпляра класса, являющегося элементом массива.
