Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Шашки. Класс-Интерфейс


Автор: exceilence 30.12.2009, 16:52


Есть класс-интерфейс    iFigure
У него есть метод move
Код

class iFigure {
    public:
    virtual ~iFigure(){};
    virtual void move( Coordinates, Coordinates ); //= 0
};




зачем ~ тильда ?
зачем =0 в конце move ?
-----------------------------------------------------------------------------------------

Идём дальше. Мне нужно 
чтобы наследники имели метод move  (для того и интерфейс)



Код

class XXXFigure : public iFigure {
    public:
    void move( Coordinates from, Coordinates to ) {
        .....
    }
};

class ZZZFigure : public iFigure {
    public:
    void move( Coordinates from, Coordinates to ) {
        .....
    }
};




Есть третий класс, который содержит фигуру!!! Но он не знает какая там она будет! XXXFigure или ZZZFigure!

Так как он должен это место зарезервировать???  как для кого?   как для iFigure  ???

Автор: mes 30.12.2009, 19:33
Цитата(exceilence @  30.12.2009,  15:52 Найти цитируемый пост)
зачем ~ тильда ?

читайте про деструкторы

Цитата(exceilence @  30.12.2009,  15:52 Найти цитируемый пост)
зачем =0 в конце move ?

и про чисто виртуальные методы и абстрактные классы

Цитата(exceilence @  30.12.2009,  15:52 Найти цитируемый пост)
Так как он должен это место зарезервировать???  как для кого?   как для iFigure  ??? 

а также про полиморфизм..

smile
резервировавть место не получится, но получится хранить по ссылке / указателю на базовый.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)