воскресенье, 12 апреля 2015 г.

Классы в С/С++: Делай с нами! Шаг 2.

Итак, продолжаю решать задачу:
Моя задача очень похожа на ваши:
"Описать класс круг с центром в точке (х0,у0) и радиусом R. Методы: расчет периметра и площади. Друг класса определяет, пересекаются ли два круга."


6. Проверим, правильно ли конструктор ввел начальные данные. Для этого напишем в методе Show( ) вывод данных на экран
 void Krug:: Show(void)
 {cout<<"Koordinaty: "<<x<<"  "<<y<<"  R="<<R<<endl;}

Обратите внимание, ничего передавать в функцию не нужно, класс "знает" свои данные.



7. Одновременно допишем в main вызов функции Show( ) для каждого объекта. Чтобы система "знала", для какого объекта вызывается метод, указывается имя объекта. Например, для объекта о1 - o1.Show();
Итак
#include "Kl.h"
void main()
{
Krug o1(1,2,3),o2(4,5,6);
o1.Show();
o2.Show();
}
 Построим проект и убедимся, что программа работает и правильно выводит начальные данные. Пишите внимательно, система отличает малые буквы от больших!

8. Напишем один из методов, например, расчет длины окружности (периметр).
а)  добавим  в описание класса новый метод (имя имеет тип, будем его использовать для возвращения значений):
class Krug
{
    float x,y,R,P,S;
    public:
    Krug(float x0,float y0,float R0);
   float Perimetr(void);
    void Show(void);
};

б) Сделаем расчет (значение будет храниться в поле класса Р) и, дополнительно, вернем это  значение с помощью имени метода:
 float Krug::Perimetr(void)
{P=2*2.1415926*R; return P;}

в) Вызовем  новый метод для обоих объектов:
#include "Kl.h"
void main()
{
Krug o1(1,2,3),o2(4,5,6);
o1.Show();
o2.Show();

float p1,p2;
p1=o1.Perimetr();
p2=o2.Perimetr();
cout<<"p1= "<<p1<<endl;
cout<<"p2= "<<p2<<endl;
}

Новые переменные можно было не вводить, но они использованы для красоты и демонстрации последовательности действий. Запускаем проект, убеждаемся, что всё прекрасно работает.

9) Аналогично пишем по одному все другие, оговоренные в тексте задачи, методы. У меня это - вычисление площади.

Конец Шага 2.

Комментариев нет:

Отправить комментарий