интерфейс == полностью абстрактный класс?
От: Аноним  
Дата: 26.12.05 15:05
Оценка:
Вот расскажите мне, человеку пишущему на Java, что используется в C++ вместо интерфейсов при ОО дизайне? Полностью абстрактные классы (типа все методы абстрактные) ? Это нормальная практика?
Re: интерфейс == полностью абстрактный класс?
От: LuciferMoscow Россия  
Дата: 26.12.05 15:11
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Вот расскажите мне, человеку пишущему на Java, что используется в C++ вместо интерфейсов при ОО дизайне? Полностью абстрактные классы (типа все методы абстрактные) ? Это нормальная практика?

Вполне.
Re: интерфейс == полностью абстрактный класс?
От: Greg Zubankov СССР  
Дата: 26.12.05 15:45
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Вот расскажите мне, человеку пишущему на Java, что используется в C++ вместо интерфейсов при ОО дизайне? Полностью абстрактные классы (типа все методы абстрактные) ? Это нормальная практика?


Полностью абстрактные классы с "чисто" виртуальными функциями.
Re[2]: интерфейс == полностью абстрактный класс?
От: gid_vvp  
Дата: 26.12.05 15:57
Оценка:
Здравствуйте, Greg Zubankov, Вы писали:

GZ>Здравствуйте, Аноним, Вы писали:


А>>Вот расскажите мне, человеку пишущему на Java, что используется в C++ вместо интерфейсов при ОО дизайне? Полностью абстрактные классы (типа все методы абстрактные) ? Это нормальная практика?


GZ>Полностью абстрактные классы с "чисто" виртуальными функциями.


Полностью абстрактный класс это и есть класс у которого все функции чисто виртуальные
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: интерфейс == полностью абстрактный класс?
От: Анатолий Широков СССР  
Дата: 26.12.05 16:55
Оценка:
_>Полностью абстрактный класс это и есть класс у которого все функции чисто виртуальные

Достаточно одной чисто виртуальной функции, чтобы класс был абстрактым.
Re[4]: интерфейс == полностью абстрактный класс?
От: Аноним  
Дата: 26.12.05 16:58
Оценка:
_>>Полностью абстрактный класс это и есть класс у которого все функции чисто виртуальные

АШ>Достаточно одной чисто виртуальной функции, чтобы класс был абстрактым.


Но не "_полностью_ абстрактным"!
Re[4]: интерфейс == полностью абстрактный класс?
От: Анатолий Широков СССР  
Дата: 26.12.05 16:59
Оценка:
Здравствуйте, Анатолий Широков, Вы писали:

_>>Полностью абстрактный класс это и есть класс у которого все функции чисто виртуальные


АШ>Достаточно одной чисто виртуальной функции, чтобы класс был абстрактым.


Да, и никаких полностью или частично абстрактных классов в C++ нет, есть абстрактный класс и точка
Re[5]: интерфейс == полностью абстрактный класс?
От: Анатолий Широков СССР  
Дата: 26.12.05 16:59
Оценка:
Здравствуйте, Аноним, Вы писали:

_>>>Полностью абстрактный класс это и есть класс у которого все функции чисто виртуальные


АШ>>Достаточно одной чисто виртуальной функции, чтобы класс был абстрактым.


А>Но не "_полностью_ абстрактным"!


http://www.rsdn.ru/Forum/Message.aspx?mid=1563390&amp;only=1
Автор: Анатолий Широков
Дата: 26.12.05
Re[2]: интерфейс == полностью абстрактный класс?
От: Greg Zubankov СССР  
Дата: 27.12.05 06:36
Оценка:
GZ>Полностью абстрактные классы с "чисто" виртуальными функциями.
Посыпаю голову пеплом.

Определение из стандарта [C++03] 10.4:

An abstract class is a class that can be used only as a base class of some other class; no objects of an
abstract class can be created except as sub-objects of a class derived from it. A class is abstract if it has at
least one pure virtual function.

Re[5]: интерфейс == полностью абстрактный класс?
От: Eugene Krasichkov Украина  
Дата: 27.12.05 07:07
Оценка:
Здравствуйте, Анатолий Широков, Вы писали:

АШ>Да, и никаких полностью или частично абстрактных классов в C++ нет, есть абстрактный класс и точка


А вот говорят привидений нет. А многие в них верят.
Даже если определения полностью абстрактного класса не существует в стандарте, то можно прийти к единому соглашению в пределах некой группы людей. Например определить его как класс со всеми pure virtual функциями и без данных.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.