Практикум по объектно-ориентированному программированию на базе языка с++ Учебно-методическое пособие



Pdf көрінісі
бет9/44
Дата21.02.2024
өлшемі0.49 Mb.
#492719
түріПрактикум
1   ...   5   6   7   8   9   10   11   12   ...   44
ООП С

Основные свойства конструкторов: 
 Имя конструктора совпадает с именем класса. 
 Конструктор не возвращает значение, даже типа void. Также нельзя 
получить указатель на конструктор. 
 Класс может иметь несколько конструкторов с разными параметрами 
для разных видов инициализации (при этом используется механизм 
перегрузки). 
Конструктор, вызываемый без параметров, называется конструкто-
ром по умолчанию. 
 Можно задавать значения параметров по умолчанию, но их может со-
держать только один из конструкторов. 
 Если программист не указал ни одного конструктора, компилятор со-
здает его автоматически. В случае, когда класс содержит константы 
или ссылки, при попытке создания объекта класса будет выдана 
ошибка, поскольку их необходимо инициализировать конкретными 
значениями, а конструктор по умолчанию этого делать не умеет. 
18 
 Конструкторы не наследуются. 
 Конструкторы нельзя описывать с модификаторами const, virtual
и static
 Конструкторы глобальных объектов вызываются до вызова функции 
main. Локальные объекты создаются, как только становится активной 
область их действия. Конструктор вызывается и при создании вре-
менного объекта (например, при возврате объекта из функции или
передаче объекта в функцию по значению). 
Задание: Разработать класс Circle (Окружность) согласно файлу circle.h
представленному ниже: 
// circle.h 
class Circle

private:
int x,y,r,color; // координаты, радиус, цвет
public: 
Circle(); // Конструктор по умолчанию 
Circle(int x, int y, int r, int color); // Конструктор с параметрами 
~Circle(); // Деструктор 
 
// функции доступа 
int get_x(); 
int get_y(); 
int get_r(); 
int get_color(); 
 
Circle & set_x(int); 
Circle & set_y(int); 
Circle & set_r(int ); 
Circle & set_color(int); 
 
// функции рисования 
void show(); 
void hide(); 
// функции перемещения 
void move(int dx, int dy); 
void moveto(int x, int y); 


19 
// функции сравнения 
int equals(const Circle &) const; 
 
// функции получения дополнительных свойств объекта 
double get_area()const; 
double get_length()const; 
 
}; 
// пример функции создания (генерации) объекта Circle 
Circle * generator() 

int r=rand() %50+10; 
int x=rand() %(480-2*r)+r; 
int y= rand() %(640-2*r)+r; 
int c= rand() %13+1; 
return new Circle(x, y, r, c); 

// пример функции перемещения объекта Circle на экране 
void show() 

Circle *pc; 
while(1)

pc=generator(); 
while(pc->get_y()>480-r) 

pc->move(pc->get_x(),pc->get_y()+1); 
delay(5); 

pc->hide(); 

delete pc; 



Достарыңызбен бөлісу:
1   ...   5   6   7   8   9   10   11   12   ...   44




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет