Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2009, 22:14   #1
ahab
Пользователь
 
Регистрация: 22.07.2009
Сообщений: 17
По умолчанию Классы с++.

В общем проблема вот в чем нужно сделать класс Rectangle.
Тех. Задание - Разработать класс прямоугольник, задать разумное поведение и протестировать на объектах класса, указателях на объект класса, массиве объектов.

Уже есть сделанное задание – «Разработать и протестировать класс Point. Создать динамический массив объектов этого класса, задать произвольно координаты и вывести те из них, которые попали внутрь круга с центром в точке (1, 2) и радиусом 5.»

Исходя из задания, прямоугольник будет задаваться левым верхним углом с координатами (X,Y) длинна и ширина - width и hight.
Действия с прямоугольником:
Ввод координат Верхнего левого угла, Ввод ширины, ввод высоты, вычисл. Площади, периметра, диагонали.

А теперь (наконец то) сама проблема
Есть 2 варианта: написать класс прямоугольник с нуля и все прописать в нем, или использовать класс точку для всего что связанно с верхним левым углом и в прямоугольник дописать все остальное.
Если честно мне больше нравиться 1 вариант, но профессор сказала, что 2 вариант оптимальнее незачем снова переписывать все что нужно для точки (в принципе в этом что то есть).
Но теперь возникают другие вопросы, если прямоугольник будет задаваться 2 классами придется создавать для 1 прямоугольника 2 объекта класса. Их наверное нужно будет как-то «связывать», а а что если 1 из объектов не создастся? (использовать исключения?)

извиняюсь за сумбурное изложение, пож. ваша критика если есть вопросы задавайте буду рад обсудть )))

point.h
Код:
/*Разработать и протестировать класс Point.
Создать динамический массив объектов этого класса,
задать произвольно координаты и вывести те из них,
которые попали внутрь круга с центром в точке (1, 2) и радиусом 5.
прототип класса Point описан в point.h
Динамический массив состоит из 3 обьектов*/

#include <iostream>
#define MASS_O 3
using namespace std;
class Point
{
private:
int x,y;		//точка

public:
	Point(int a=0,int b=0);
	void setX(int x);
	void setY(int y);
	void display()const;	//вывод координат точки
	int getX()const;		//возращает координату X
	int getY()const; 	//возращает координату Y
};
ahab вне форума Ответить с цитированием
Старый 17.12.2009, 23:59   #2
Nikanor
 
Регистрация: 17.12.2009
Сообщений: 5
По умолчанию

[QUOTE=ahab;418589]Есть 2 варианта: написать класс прямоугольник с нуля и все прописать в нем, или использовать класс точку для всего что связанно с верхним левым углом и в прямоугольник дописать все остальное.

Второй вариант лучше. Создаешь класс Rectangle, в private-части объявляешь объект класса Point - и работаешь с ним в классе Rectangle. В общем-то, можно еще что-то придумать.

А если говорить об оптимальности, то в самом представленном коде... ну, эт меня уже куда-то не туда понесло=))

Последний раз редактировалось Nikanor; 18.12.2009 в 00:07.
Nikanor вне форума Ответить с цитированием
Старый 18.12.2009, 00:42   #3
ahab
Пользователь
 
Регистрация: 22.07.2009
Сообщений: 17
По умолчанию

в принципе я о чем то таком думал, спасибо )
есть еще варианты? буду рад
ahab вне форума Ответить с цитированием
Старый 18.12.2009, 02:40   #4
tinpl
 
Регистрация: 19.03.2009
Сообщений: 8
По умолчанию

Ммм.. А почему " если прямоугольник будет задаваться 2 классами придется создавать для 1 прямоугольника 2 объекта класса. Их наверное нужно будет как-то «связывать» " ? Если ты в конструкторе пропишешь создание своей точки для прямоугольника то проблем не будет...

Ты просто объявляешь класс Rectangle, в приват добавляешь 1 точку, длину, ширину и угол поворота.
в паблике будут конструктор, деструктор, методы по получению любой из 4х точек ( которые ты находишь синусами и косинусами с помощью начальной точки и длины и ширины ), и методы по получению/изменению твоих данных...
Вот и все собственно...
tinpl вне форума Ответить с цитированием
Старый 19.12.2009, 12:43   #5
Nikanor
 
Регистрация: 17.12.2009
Сообщений: 5
По умолчанию

Если честно, то не вижу смысла вообще для точки создавать класс. Лучше просто написать структуру, в которую засунуть координаты точки.

Код:
struct Point
{
    int x,y;
}
Nikanor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ классы KOLYTFR Помощь студентам 1 04.06.2009 19:58
классы elenSV Общие вопросы C/C++ 0 31.05.2009 09:48
Классы Sasuke-sama Общие вопросы C/C++ 8 30.05.2009 15:15
Классы TeleSky Помощь студентам 11 05.01.2009 13:43