0 / 0 / 0
Регистрация: 03.04.2017
Сообщений: 9
|
|
1 | |
Базовый класс "многоугольник" и производные классы "треугольник" и "прямоугольник"06.04.2017, 14:48. Показов 10769. Ответов 14
Метки нет (Все метки)
Не могу понять как реализовать данное задание.
Создать 1 базовый класс и несколько производных.Все небольшие ф-ии сделать встроенными (особенно конструк- торы). В производных классах определить уникальные функции и/или свойства (свойство – это переменная-член данного класса). Для всех классов реализовать работу с их объектами (ввод/вывод всех данных). // тут все понятно. Базовый класс – многоугольник. Производные – треугольник и прямоугольник. // тут не очень В производных классах допустим функции - нахождение площади или периметра. А вот как сам класс реализовать не понятно. Есть конечно предположение что в классе - цвет, а в производном стороны и площадь, но это как то стремно.
0
|
06.04.2017, 14:48 | |
Ответы с готовыми решениями:
14
Опишите базовый класс "Многоугольник" и производные классы: ромб, прямоугольник, квадрат, шестиугольник Базовый класс Фигура, производные классы Окружность, Прямоугольник, Ромб Создать базовый класс – фигура, и производные классы: круг, прямоугольник, трапеция Базовый класс: фигура на плоскости; Производные классы: окружность, ромб, прямоугольник; Функция: расчет площади фигуры Класс: Создать базовый класс «работник фирмы» и производные классы «стажер», «руководящий сотрудник», «директор»... |
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
|
||||||
06.04.2017, 16:16 | 2 | |||||
Я вижу эту задачу так. Делаешь родительский класс Многоугольник, а Треугольник и Прямоугольник - это просто будут классы-сыновья и все.
Псевдокод, проверяйте-исправляйте, если есть какие-нибудь ошибки.
1
|
56 / 50 / 22
Регистрация: 17.03.2014
Сообщений: 143
|
|
06.04.2017, 16:24 | 3 |
Сделайте красиво: абстрактный класс с чистыми виртуальными функциями и чем-нибудь удобоваримым для всех фигур, например цветом, а в потомках - реализация. Полиморфизм во всей красе.
0
|
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
|
|
06.04.2017, 16:26 | 4 |
Кому-нибудь не трудно будет подсказать что тут за ошибка возникает:URL="http://ideone.com/KON2Vr"]http://ideone.com/KON2Vr[/URL]
Сама ошибка: Ошибка компиляции time: 0 memory: 0 signal:0 prog.cpp: In constructor ‘Mnogougolnik::Mnogougolnik()’: prog.cpp:21:22: error: conversion from ‘Point*’ to non-scalar type ‘Point’ requested Point Vertexes = new Point[Points]; ^~~~~~~~~~~~~~~~~(стрелочка под буквой n в new) Т.е. вроде создаю динимаческий массив, что тут такого-то. Вроде ничего нет особенного - пишет ошибка.
0
|
5876 / 4753 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
|
06.04.2017, 16:38 | 5 |
0
|
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
|
||||||
06.04.2017, 17:21 | 6 | |||||
Не, звездочка тут не нужна, там других косяков полным-полно. Что-то устал я уже видно. В общем констурктор Mnogougolnik нужно переписать вот так:
1
|
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
|
||||||
06.04.2017, 18:04 | 8 | |||||
А что, в Многоугольнике работает опрос пользователя.
Что-то я не пойму почему в Mnogougolnik работает опрос пользователя, а в классах-сыновьях - не работает?
1
|
0 / 0 / 0
Регистрация: 03.04.2017
Сообщений: 9
|
||||||
07.04.2017, 05:17 [ТС] | 9 | |||||
152 строка, я вроде что то упустил. Как S сделать публичным? Странно что на пред идущие не ругается.
0
|
Падаван С++
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
|
|||||||||||||||||||||||||||||||
07.04.2017, 06:43 | 10 | ||||||||||||||||||||||||||||||
оно в паблике и находится но не принимает аргументов, а вызов у вас а аргументами
P.S если вы в вижуал студии отфарматируйте код, сочетания клавиш, ctrl+a (выделить все) и потом последовательно ctrl + K, ctrl + F (форматирование) Добавлено через 4 минуты Потом, почему у вас конструкторы названы отличными именами от имени класса, так делать нельзя, поправить строки
вот эти методы у вас вообще не объявлены тоже поправляйте на то, что вам нужно
1
|
Модератор
13642 / 10863 / 6453
Регистрация: 18.12.2011
Сообщений: 28,969
|
||||||
07.04.2017, 07:28 | 11 | |||||
логическая ошибка проектирования объекта.
базовый класс не знает структуру наследника. для этого есть полиморфизм. метод Show должен быть виртуальным.
1
|
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
|
|||||||||||
07.04.2017, 12:25 | 12 | ||||||||||
Сообщение было отмечено ViktorPetrovich как решение
Решение
Во я как сделал! Уха-ха-ха!!!!!!! Я лучший!!!!!!!!!!!!!!!!!!!
Заточено под C++Builder 6, если что. В конструкторах тепереь ничего не спришвает, работа с консолью только в main(). Добавлено через 3 минуты Плохо, что русские буквы тут не печатает. Если что тут написано вот это:
- MrGluck, а можете ответить на вопрос почему в базовом классе есть работа с консолью, а в детях нет?
2
|
Форумчанин
8216 / 5046 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
07.04.2017, 12:28 | 13 |
Потому что дети были точно так же хренового спроектированы. Не должно быть в конструкторе операций ввода/вывода, как у вас. Ни в каких классах, а не только в производных.
1
|
Модератор
13642 / 10863 / 6453
Регистрация: 18.12.2011
Сообщений: 28,969
|
|
09.04.2017, 21:38 | 14 |
Нельзя указателем адресовывать внешние данные.
Нужно выделить память и их скопировать!!!! И правило трех еще никто не отменял!!!! Распространенные ошибки
0
|
0 / 0 / 0
Регистрация: 19.02.2022
Сообщений: 3
|
||||||
11.04.2022, 10:07 | 15 | |||||
0
|
11.04.2022, 10:07 | |
11.04.2022, 10:07 | |
Помогаю со студенческими работами здесь
15
Опишите базовый класс фильмов и производные классы Опишите базовый класс фильмов и производные классы Опишите базовый класс фильмов и производные классы Опишите базовый класс фильмов и производные классы Опишите базовый класс фильмов и производные классы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |