Вот расскажите мне, человеку пишущему на Java, что используется в C++ вместо интерфейсов при ОО дизайне? Полностью абстрактные классы (типа все методы абстрактные) ? Это нормальная практика?
Здравствуйте, Аноним, Вы писали:
А>Вот расскажите мне, человеку пишущему на Java, что используется в C++ вместо интерфейсов при ОО дизайне? Полностью абстрактные классы (типа все методы абстрактные) ? Это нормальная практика?
Вполне.
Здравствуйте, Аноним, Вы писали:
А>Вот расскажите мне, человеку пишущему на Java, что используется в C++ вместо интерфейсов при ОО дизайне? Полностью абстрактные классы (типа все методы абстрактные) ? Это нормальная практика?
Полностью абстрактные классы с "чисто" виртуальными функциями.
Здравствуйте, Greg Zubankov, Вы писали:
GZ>Здравствуйте, Аноним, Вы писали:
А>>Вот расскажите мне, человеку пишущему на Java, что используется в C++ вместо интерфейсов при ОО дизайне? Полностью абстрактные классы (типа все методы абстрактные) ? Это нормальная практика?
GZ>Полностью абстрактные классы с "чисто" виртуальными функциями.
Полностью абстрактный класс это и есть класс у которого все функции чисто виртуальные
_>Полностью абстрактный класс это и есть класс у которого все функции чисто виртуальные
Достаточно одной чисто виртуальной функции, чтобы класс был абстрактым.
Re[4]: интерфейс == полностью абстрактный класс?
От:
Аноним
Дата:
26.12.05 16:58
Оценка:
_>>Полностью абстрактный класс это и есть класс у которого все функции чисто виртуальные
АШ>Достаточно одной чисто виртуальной функции, чтобы класс был абстрактым.
Здравствуйте, Анатолий Широков, Вы писали:
_>>Полностью абстрактный класс это и есть класс у которого все функции чисто виртуальные
АШ>Достаточно одной чисто виртуальной функции, чтобы класс был абстрактым.
Да, и никаких полностью или частично абстрактных классов в C++ нет, есть абстрактный класс и точка
Здравствуйте, Аноним, Вы писали:
_>>>Полностью абстрактный класс это и есть класс у которого все функции чисто виртуальные
АШ>>Достаточно одной чисто виртуальной функции, чтобы класс был абстрактым.
А>Но не "_полностью_ абстрактным"!
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.
Здравствуйте, Анатолий Широков, Вы писали:
АШ>Да, и никаких полностью или частично абстрактных классов в C++ нет, есть абстрактный класс и точка
А вот говорят привидений нет. А многие в них верят.
Даже если определения полностью абстрактного класса не существует в стандарте, то можно прийти к единому соглашению в пределах некой группы людей. Например определить его как класс со всеми pure virtual функциями и без данных.