Скачиваний:
14
Добавлен:
01.05.2014
Размер:
1.67 Кб
Скачать
// Copyright (C) 1991 - 1999 Rational Software Corporation

#if defined (_MSC_VER) && (_MSC_VER >= 1000)
#pragma once
#endif
#ifndef _INC_SHAPE_46F50BDC00BB_INCLUDED
#define _INC_SHAPE_46F50BDC00BB_INCLUDED
//////////////////////////////////////////////////////////////////////////
class ostream;
//////////////////////////////////////////////////////////////////////////
//обобщенная фигура

class Shape 
{
private:
    //счетчик объектов
    
    static int _counter;

    //идентификатор объекта
    
    int _id;
protected:
    //абсцисса фигуры. все фигуры по умолчанию появляются в начале координат
    
    float _x;
    
    //ордината фигуры. все фигуры по умолчанию появляются в начале координат
    
	float _y;

    
    Shape(float x, float y);
    
    //вывести состояние фигуры в поток
    
    virtual ostream& speak(ostream& os) const;
public:
    
    virtual ~Shape();

    //получить ординату фигуры
    
    const float get__y() const;
    
    //задать ординату фигуры
    
    void set__y(float value);
    
    //получить абсциссу фигуры
    
    const float get__x() const;
    
    //задать абциссу фигуры
    
	void set__x(float value);

    //оператор вывода в поток
    
	friend ostream& operator<<(ostream& o, const Shape& rhs);

    
    virtual bool operator==(const Shape& rhs) const;

	//перенести фигуру в заданную точку
	
	void moveToPoint(float x_pos, float y_pos);

    //вычисляет площадь фигуры
    
    virtual float Area() const = 0;
};
//////////////////////////////////////////////////////////////////////////
#endif /* _INC_SHAPE_46F50BDC00BB_INCLUDED */
Соседние файлы в папке lab_1