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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заменить наследование классов на наследование интерфейсов - C++
#include <iostream> #include <assert.h> using namespace std; int people_on_base = 100; int vehicles_on_base = 100; double...

Наследование - C++
Помогите!! есть два класса: дверцы и доска, из этих классов наследуется класс шкаф, а из класса шкаф наследуется кшишкова шкаф. Показать по...

Наследование - 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
1646 / 1274 / 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; // вторая точка отрезка
};
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2012, 21:21
Привет! Вот еще темы с ответами:

наследование - C++
Люди, помогите пожалуйста....Не знаю как ее сделать... Описать базовый класс Строка. Обязательные поля класса: • поле для хранения...

Наследование?! - C++
привет всем. Есть класс Circle c1, c2, c3 Нужно реализовать через наследование класс множество, прошу помочь как он будет выглядеть...

Наследование c++ - C++
Здравствуйте. Есть абстрактный класс : class GeometryFigures { private: string Name; public: void setName(string Name_new);...

наследование - C++
Пытаюсь разобраться в наследовании Есть класс class File { public: struct comp { char num; // Имя переменной char st;...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.02.2012, 21:21
Ответ Создать тему
Опции темы

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