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

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

Войти
Регистрация
Восстановить пароль
 
Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
#1

Абстрактные классы - C++

01.04.2014, 08:04. Просмотров 416. Ответов 14
Метки нет (Все метки)

Никак не могу понять смысл абстрактных данных.Ведь мы можем использовать и обычный класс,только абстракция запрещает создавать объекты.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2014, 08:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Абстрактные классы (C++):

Абстрактные классы - C++
Народ, вопрос есть такой. Есть абстрактный класс class A { protected: int a; public: A(int b=0):a(b) {

Абстрактные классы - C++
Ребята! Помогите с таким делом. Мне дали задание создать абстрактный класс Автомобиль, классы наследники: гоночный автомобиль, асфальтный...

Абстрактные классы - C++
void _tmain() { const int lim = 100; MyFunction *pFunc ; int count = 0; pFunc = new My_Exp; pFunc = new Line; pFunc...

абстрактные классы - C++
компилятор ругается когда я пытаюсь записать объект класса!!!! подскажите что я не правильно делаю!! #include <cstdlib> #include...

абстрактные классы - C++
Здрасте я при написании программы столкнулся с проблемой что немогу создать указатель на объект т.к. класс абстрактный прошу помогите...

Абстрактные классы - C++
Помогите плиз, экзаменационное задание, а разобраться не могу с ним: Создать консольное приложение, в котором реализовать работу...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
0x10
2464 / 1636 / 238
Регистрация: 24.11.2012
Сообщений: 4,031
01.04.2014, 08:06 #2
Игорюня, имея абстрактный класс, можно с разными типами работать единообразно. Примеров полно в любой книге.
1
rrrFer
Заблокирован
01.04.2014, 08:10 #3
Абстрактные классы описывают интерфейс для своих наследников и обязывают его реализовывать. Т.е. до тех пор пока наследники не реализуют интерфейс мы не сможем создавать объекты (могут и не реализовывать, но останутся абстрактными). Зато клиенты, использующие эти объекты по указателю на абстрактный класс могут быть уверены в интерфейсе. В этом суть.
1
Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
01.04.2014, 08:10  [ТС] #4
Виртуальные функции?
0
rrrFer
Заблокирован
01.04.2014, 08:13 #5
Цитата Сообщение от Игорюня Посмотреть сообщение
Виртуальные функции?
Это вопрос?
Абстрактный класс - это класс с хоть одной чисто виртуальной функцией.
Открой книжку. Форум - это не учебник.
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,850
01.04.2014, 08:17 #6
Цитата Сообщение от Игорюня Посмотреть сообщение
Виртуальные функции?
почти что
чистые виртуальные функции
C++
1
virtual int fnc()=0;
ну а про абстрактные классы
вот пример, притянутый за уши, из физики
там есть понятие точки
точка опоры, точка приложения сил .......
но точка понятие абстрактное никогда не существующее, на самом деле рассматривают прямоугольник, круг или еще чего слишком малого размера
так вот можно сказать что точка это абстрактный класс а все геометрические фигуры это наследники его
но при расчетах их приводят к точке
1
rrrFer
Заблокирован
01.04.2014, 08:21 #7
Цитата Сообщение от ValeryS Посмотреть сообщение
вот пример, притянутый за уши, из физики
...
но точка понятие абстрактное никогда не существующее, на самом деле рассматривают прямоугольник, круг или еще чего слишком малого размера
пример ущербный, если уж на то пошло. Прямоугольник не менее абстрактный чем точка. И тоже ни разу не существует.
Прямоугольник - не наследник точки. Открой Саттера.
Если твой прямоугольник наследует точку, то ты утверждаешь, что прямоугольник является точкой. А он является точкой?
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,850
01.04.2014, 08:30 #8
Цитата Сообщение от rrrFer Посмотреть сообщение
Прямоугольник не менее абстрактный чем точка. И тоже ни разу не существует.
Серьезно? Вот он передо мной лежит, в виде листа бумаги
бедные геометры то не знали, что считают периметр и площадь несуществующей фигуры
Цитата Сообщение от rrrFer Посмотреть сообщение
Прямоугольник - не наследник точки.
Я где то утверждал обратное?
Рассматривается как точка, для этого я ввел слова
Цитата Сообщение от ValeryS Посмотреть сообщение
можно сказать
или ты источник света,звезду находящуюся за сотни световых лет, рассматриваешь как сферу?

Цитата Сообщение от rrrFer Посмотреть сообщение
Открой Саттера.
Это физик? Я сказал во первых что
Цитата Сообщение от ValeryS Посмотреть сообщение
притянутый за уши
во вторых
Цитата Сообщение от ValeryS Посмотреть сообщение
из физики
а в ней родной все тела, имеет место быть, рассматривают как точку
Цитата Сообщение от rrrFer Посмотреть сообщение
пример ущербный, если уж на то пошло.
Приведи другой
0
DrOffset
7152 / 4293 / 968
Регистрация: 30.01.2014
Сообщений: 7,094
01.04.2014, 08:48 #9
Цитата Сообщение от ValeryS Посмотреть сообщение
а все геометрические фигуры это наследники его
Если из физики, то там фигур нет. Есть тела. Так что мне в принципе понятно почему к тебе rrrFer придрался. Но и понятно, что ты на самом деле имел в виду
Если написать вместо геометрических фигур - тела, то ИМХО станет и понятнее, и ближе к истине, и поводов придраться будет меньше
Цитата Сообщение от rrrFer Посмотреть сообщение
И тоже ни разу не существует.
Вот это прямой намек на то, что в физике нет фигур - это абстрактное понятие из геометрии.
0
rrrFer
Заблокирован
01.04.2014, 11:05 #10
Цитата Сообщение от ValeryS Посмотреть сообщение
Прямоугольник - не наследник точки.
Я где то утверждал обратное?
ты тут утверждал обратное:
Цитата Сообщение от ValeryS Посмотреть сообщение
так вот можно сказать что точка это абстрактный класс а все геометрические фигуры это наследники его
Короче, читай собственные сообщения до отправки.
Цитата Сообщение от ValeryS Посмотреть сообщение
Это физик? Я сказал во первых что
Это программист, член коммитета стандартизации С++ и просто очень уважаемый и известный человек, который пишет нормальные книги. Книги не столько по С++, сколько по проектированию.

Добавлено через 1 минуту
Цитата Сообщение от ValeryS Посмотреть сообщение
Приведи другой
0x10, четко ответил на это в первом сообщении темы.
0
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
01.04.2014, 11:35 #11
Стоило бы еще наверно упомянуть про то, чем абстрактный класс отличается от интерфейса (в С++ насколько знаю, интерфейсов как в java, например, нет). Отличается тем, что в абстрактном классе для последующих производных классов можно задать какие-то единые данные по умолчанию (т.е. реализацию).
В общем-то, в первом посте темы об этом сказано, но более широко.
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,850
01.04.2014, 11:57 #12
Цитата Сообщение от rrrFer Посмотреть сообщение
ты тут утверждал обратное:
Слова "можно сказать" игнорируем?
Цитата Сообщение от rrrFer Посмотреть сообщение
0x10, четко ответил на это в первом сообщении темы.
и что человеку, ни разу не щупавшему, что такое абстрактный класс,стало более понятно?
0
0x10
01.04.2014, 12:07
  #13

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
и что человеку, ни разу не щупавшему, что такое абстрактный класс,стало более понятно?
Скорее rrrFer говорил о том, что я сразу послал в книги, даже не пытаясь объяснить. Форум - действительно не учебник, а вопрос в теме - не про матанализ, так что можно рассчитывать, что в книгах реально найти доступное изложение материала.

0
ValeryS
01.04.2014, 12:12
  #14

Не по теме:

Цитата Сообщение от 0x10 Посмотреть сообщение
Форум - действительно не учебник,
да здесь иногда лучше объяснят а иногда хуже
но на систематизацию знаний рассчитывать не стоит
Цитата Сообщение от 0x10 Посмотреть сообщение
что в книгах реально найти доступное изложение материала.
в свое время, я долго не мог понять, что такое "теорема Котельникова", продирался через формулы, и наконец заучил, но не понял
А пришел человек, нарисовал спектр сигнала, и все стало ясно, почему частота дискретизации должна быть выше в два раза.
Так что не всегда в учебниках более понятно

0
0x10
01.04.2014, 12:55     Абстрактные классы
  #15

Не по теме:

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2014, 12:55
Привет! Вот еще темы с ответами:

Абстрактные классы - C++
В общем есть у нас 2 абстрактных класса CA и CB и 2 дочерних от них класса CC и CD. Как сделать так чтобы CD наследовал CB поверх которого...

Абстрактные классы - C++
Объясните пожалуйста почему это не работает и как исправить? cannot declare variable 'b1' to be of abstract type 'classB' because the...

Абстрактные классы - C++
Помогите пожалуйста, сообразить не могу. Есть абстрактный класс. У него есть метод, чтение из файла. Есть производный от него класс....

Абстрактные классы. Интерфейсы - C++
Помогите пожалуйста!!! Лабораторная работа по ООП. Тема: Абстрактные классы. Интерфейсы. Цель: получить навыки создания иерархии...


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

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

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