![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
Tribunal |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 233 Пол: Женский Реальное имя: Dasha Репутация: ![]() ![]() ![]() |
Задание следующее:
Написать программу,демонстрирующую работу с объектами двух типов Т1 и Т2,для чего создать систему соответствующих классов. Каждый объект должен иметь идентификатор(в виде произвольной строки символов) и одно или несколько полей для хранения состояния (текущего значения) объекта. Клиенту(ф-ии main) должны быть доступны следующеие основные операции(методы):создать объект,удалить объект,показать значение объекта и прочие дополнительные операции,которые будут указаны ниже.Операции по созданию и удалению объектов инкапсулировать в классе Factory.Предусмотреть место,позволяющее продемонстрировать заданные операции. При необходимости в разрабатываемые классы добавляются дополнительные методы(например,конструктор копирования,операция присваивания и тп)для обеспечения надлежащего функционирования этих классов. Типы объектов Класс \ Объект ------------------------------------------------- Triangle \ Треугольник Quadrate \ Квадрат Rectangle \ Прямоуголник Tetragon \ Четырёхуголник Pentagon Пятиугольник Перечень дополнительных операций Операция(метод) \ Описание ------------------------------------------------------------- Move() \ Переместить объект на плоскости Compare(T& ob1,T& ob2) \ Сравнить объект 1 и 2 по площади IsIntersect(T& ob1,T& ob2) \ Определить факт пересечения объектов 1,2(есть\нет) IsInclude(T& ob1,T& ob2) \ Определить факт включения объекта 2 в объект 1. T1 \ T2 \ Операция(Метод) ---------------------------------------------- Triangle \ Pentagon \ Move(),Compare(T&,T&) дык вот....я даже не знаю с чего начать... помогите,пожалуйста. -------------------- irreparabilium felix olivio rerum
|
![]() ![]() |
Алена |
![]()
Сообщение
#2
|
Гость ![]() |
1) ты забыла одну закрывающую скобку (завершающую в функции TFigure::move_it), и получила несколько наведенных ошибок... Кстати, компилятор предупреждает тебя, что функции, содержащие for не будут inline-функциями, поэтому их описания лучше выносить за пределы определения класса...
2) double getS() const {это неправильно... Чтобы обращаться к точкам, тебе достаточно: double getS() const- обращаться по имени переменной, а не типа... Причем, заметь, массивы в С++ индексируются с 0 а не с 1... Та же самая ошибка у тебя - при попытке считать координаты точек в конструкторе TPentagon... 3) В классе TPentagon деструктор должен называться ~TPentagon(), а не ~TTriangle()... 4) В классе TPentagon переменная pts не определена в классе, а определена только в конструкторе, т.е. при выходе из конструктора ты все точки потеряешь... Перенеси определение переменной в сам класс... 5) еще одна ощибка - в функции Compare: ты описываешь ее, как возвращающую символ, а пытаешься вернуть строку... Символ - это одиночные апострофы, строка - кавычки... Вот правильное определение: char Compare(const TFigure &T1, const TFigure &T2) 6) У тебя нет конструктора по умолчанию для TTriangle и для TPentagon. А ты пытаешься его вызвать... TTriangle T1;А вот как от этого избавиться - это уже вопрос к тебе: ты все-таки решила, что хочешь вводить координаты точек прямо в конструкторе? Тогда делай именно конструкторы по умолчанию... Для TTriangle, например, такой: TTriangle(int numPoints = 3) : TFigure("triangle") 7) С show_position ты тоже что-то намудрила, там должна быть либо виртуальная функция (переопределяемая в наследниках), как и в случае с getS(), либо... Хотя нет, ты сделай пока виртуальную, а я тебе потом покажу, как еще можно сделать... Ну, вроде пока все. Постарайся исправить эти ошибки ![]() Это не так сложно, как кажется на первый взгляд, ты же только начинаешь ООП, а это - совершенно другой стиль программирования... |
![]() ![]() |
![]() |
Текстовая версия | 16.08.2025 14:08 |