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

#if defined (_MSC_VER) && (_MSC_VER >= 1000)
#pragma once
#endif
#ifndef _INC_RECTANGLE_46F50C350000_INCLUDED
#define _INC_RECTANGLE_46F50C350000_INCLUDED
//////////////////////////////////////////////////////////////////////////
#include "Shape.h"

#include <list>
//////////////////////////////////////////////////////////////////////////
class ostream;
using std::list;
//////////////////////////////////////////////////////////////////////////
//прямоугольник

class Rectangle2 
: public Shape
{
private:
    //указатели на созданные прямоугольники
    
    static list<Rectangle2*> _rectangles;

	//длина
	
	float _length;

	//ширина
	
	float _width;

    
    Rectangle2(float l, float w, float x, float y);
public:
	// Virtual draw operation
	
	virtual void Draw(CDC* pDC, CElement* pElement = 0, bool isIdVisible = true);

	//идентификатор типа объекта
	
	virtual int getType() const;

	
	Rectangle2();

	
	virtual void Serialize(CArchive& ar);

    //выдает указатель на уже существующий прямоугольник, если он имеет заданные 
    //параметры
    //если такого не существует - создает новый
    
    static Rectangle2* create(float length = NULL, float width = NULL, float x = NULL, float y = NULL);

    // создает прямоугольник по точкам углов
	
    static Rectangle2* create(CPoint Start, CPoint End, COLORREF aColor);

    
	virtual ~Rectangle2();

	//получить длину
	
	const float get__length() const;

	//задать длину
	
	void set__length(float value);

	//получить ширину
	
	const float get__width() const;

	//задать ширину
	
	void set__width(float value);

    //вычисляет площадь фигуры
    
    virtual float Area() const;
protected:
    //вывести состояние прямоугольника в поток
    
    virtual std::ostream& speak(std::ostream& os) const;
};



//////////////////////////////////////////////////////////////////////////
#endif /* _INC_RECTANGLE_46F50C350000_INCLUDED */
Соседние файлы в папке shapes