Здравствуйте, Sni4ok, Вы писали:
А>>1. есть полностью абстрактный класс; когда создаем наследника от него, то нужно, чтобы студия автоматически добавляла определения методов, которые нам так и так нужно перегружать
S>заведомо нет методов которые нужно перегружать, так как наследник абстракного класса — сам может быть абстрактным классом.
А минус за что? Я тоже так считаю.
Например:
// для ясности
#define interface class
#define extends :
#define implements :
interface Displayable
{
public:
void display(Device& device, Position pos) const
{
doDisplay(device, pos);
device.repaint();
}
private:
virtual void doDisplay(Device &, Position) = 0;
};
class Window implements Displayable
{
public:
. . .
private:
void doDisplay(Device &, Position);
};
interface AlphaDisplayable extends Displayable
{
public:
void display(Device& device, Position pos, AlphaChannelParameters const& params)
{
doDisplay(device, pos, params);
device.repaint(params);
}
private:
virtual void doDisplay(Device &, Position, AlphaChannelParameters const &) = 0;
};
class CompositeWindow implements AlphaDisplayable
{
public:
. . .
private:
void doDisplay(Device &, Position);
void doDisplay(Device &, Position, AlphaChannelParameters const &);
};
Как здесь определить, где что?