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

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

Восстановить пароль Регистрация
 
Игорюня
 Аватар для Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
01.04.2014, 08:04     Абстрактные классы #1
Никак не могу понять смысл абстрактных данных.Ведь мы можем использовать и обычный класс,только абстракция запрещает создавать объекты.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2014, 08:04     Абстрактные классы
Посмотрите здесь:

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

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

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

Не по теме:

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

ValeryS
01.04.2014, 12:12
  #14

Не по теме:

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

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

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

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

Или воспользуйтесь поиском по форуму:
0x10
01.04.2014, 12:55     Абстрактные классы
  #15

Не по теме:

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

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

Текущее время: 00:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru