Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Merovingian
54 / 54 / 5
Регистрация: 24.09.2011
Сообщений: 149
#1

Одиночное наследование - C++

26.02.2012, 23:54. Просмотров 1137. Ответов 3
Метки нет (Все метки)

Нужно определить три класса: линия, луч и отрезок. Использовать наследование.

Проблема заключается в том, что я не знаю какой класс взять за базовый?

Очень хочется сделать класс "точка на плоскости" ко всему прочему. Если отрезок будет наследником луча, а луч в свою очередь будет наследником линии?

Затруднения вызывает сама логика:

Например если взять класс "здание", то его производными могут быть "жилой дом", "фабрика" и т.д.... Но является ли луч разновидностью линии?))

Если попробовать разобраться в свойствах каждого из объектов класса?
Линия задается уравнением, а луч еще имеет неравенство потому, что ограничен с одной стороны, тогда отрезок ограничен с двух сторон...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2012, 23:54     Одиночное наследование
Посмотрите здесь:

Одиночное наследование - C++
Помогите! Создайте класс точка, которая имеет координаты. Класс эллипсов, и класс окружностей. Определить иерархию типов....

Абстрактный класс, одиночное наследование, далее множественное - C++
Добрый вечер! никак не могу найти информацию о том, как правильно реализуется следующее действие: есть абстрактный класс А, от него...

Одиночное наследование, иерархия классов "Шахматная фигура" - C++
Люди добрые помогите пожалуйста написать программу на с++. Создать иерархию классов шахматная фигура - абстрактный класс, содержащий...

Наследование - C++
Всем привет. Может кто нибудь подсказать с чего начать при создании класса для работы с файлами на подобии ostream( а точнее как правильно...

Наследование - C++
char* Texts :: SetBit() { char a; int b; cout << "Получаем битовую строку" << endl; cin >> a; b = strlen(a);...

Наследование в C++ - C++
Прошу помощи, ибо С++ не моё, а лабораторные работы девушке сдавать надо: Создать 1 базовый класс и несколько производных. Все...

Наследование - C++
Написал код, но есть небольшая ошибка. Мне нужно, чтобы с клавиатуры вводилось имя (например James) и он сразу выводил по нему всю...

Наследование - C++
Добрый день. Мне нужно реализовать такую структуру классов: есть класс 1, от него наследуются три класса: 2.1, 2.2, 2.3. От этих трех...

Наследование - C++
Как избавиться от неоднозначности при ромбовом наследовании?

Наследование - C++
Создать класс CPoint – точка. На его основе создать классы CcoloredPoint и CLine. На основе класса CLine создать класс CColoredLine ...

наследование - C++
помогите пожалуйсто дописать класс многоугольников , и рисовать на монитор с помощью mfc , заранее благодарен... class figure{ public: ...

Наследование - C++
Всем доброго времени суток! Начали изучать наследование, вроде все и понятно, но и с другой стороны нет(((( Вот вопрос: есть сразу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
27.02.2012, 01:51     Одиночное наследование #2
математику на 3 знаю ) , но посмею предположить, что линия - это как некая абстракция (линия - не обязательно прямая), луч - мб описан уравнением прямой, а отрезок также описывается уравнением прямой, но имеет начало и конец.
Merovingian
54 / 54 / 5
Регистрация: 24.09.2011
Сообщений: 149
27.02.2012, 03:52  [ТС]     Одиночное наследование #3
Цитата Сообщение от OstapBender Посмотреть сообщение
математику на 3 знаю ) , но посмею предположить, что линия - это как некая абстракция (линия - не обязательно прямая), луч - мб описан уравнением прямой, а отрезок также описывается уравнением прямой, но имеет начало и конец.
Нет, если затруднения с геометрией, то:
Линия(думаю, что имеется ввиду прямая) - задается уравнением y = kx+b. Она бесконечная.
Луч - это тоже линия(прямая), только ограниченная с одной стороны, а другую сторону - бесконечна.
Отрезок - это тоже линия(прямая), только ограниченная с двух сторон.

В таком случае для задания линии(прямой) нужно линейное уравнение,
для задания луча - уравнение и неравенство,
для задания отрезка - уравнение и два неравенства.

Это я так понимаю, поправьте если не прав!

Но как классы то описать? Какие свойства будут иметь объекты классов? Можно задать каждый из объектов(имеется ввиду линия, отрезок и луч) двумя точками. Только методы для рисования будут разными!
igorrr37
1641 / 1269 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
27.02.2012, 21:21     Одиночное наследование #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// y = a * x + b;
 
class Line
{
protected:
    double a, b;
};
 
class Ray : public Line
{
protected:
    double xb, yb; // начало луча(и первая точка отрезка)
};
 
class Segment : public Ray
{
protected:
    double xe, ye; // вторая точка отрезка
};
Yandex
Объявления
27.02.2012, 21:21     Одиночное наследование
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru