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


Автор: certt 1.3.2007, 19:36
помогите. пожалуйста, создал на с++ класс окружность, координаты центра, радиус, признак отображения на экране.мне нужно сделать производные классы: "вписанный многоугольник"(количество сторон) и "описанный многоугольник"(количество сторон, цвет), ввести порядковый номер фигуры в базовый класс. Определить функцию визуализации для каждого класса с разной реализацией. Borland C++ 3.0. 
#include <iostream.h>

class Shape
{
public:
Shape()
{
cout << "Shape" << endl;
}
virtual ~Shape()
{
cout << "~Shape" << endl;
}
virtual void Draw() = 0;
};

class Circle : public Shape
{
int x_, y_, r_;
public:
Circle(int x = 0, int y = 0, int r = 0)
: x_(x), y_(y), r_®
{
cout << "Circle" << endl;
}
Circle(const Circle& c)
: x_(c.x_), y_(c.y_), r_(c.r_)
{
cout << "Circle copy constructor" << endl;
}
Circle& operator = (const Circle& c)
{
cout << "Circle operator =" << endl;
x_ = c.x_;
y_ = c.y_;
r_ = c.r_;
return *this;
}
~Circle()
{
cout << "~Circle" << endl;
}
void Draw()
{
cout << "Draw Circle\tx = " << x_ << "\ty = " << y_ << "\tr = " << r_ << endl;
}
int GetX() const
{
return x_;
}
int GetY() const
{
return y_;
}
int GetR() const
{
return r_;
}
void SetX(int x)
{
x_ = x;
}
void SetY(int y)
{
y_ = y;
}
void SetR(int r)
{
r_ = r;
}
};

void main()
{
Circle c1(10, 10, 5);
c1.Draw();
c1.SetR(2);
Circle c2(c1);
c2.SetX(c1.GetX() + 10);
c2.Draw();
Circle c3;
c3 = c2;
c3.SetY(100);
c3.Draw();
}

Автор: KelTron 2.3.2007, 08:57
Цитата(certt @  1.3.2007,  19:36 Найти цитируемый пост)
: x_(x), y_(y), r_®

козно

Если хочешь чтоб тебе быстрее помогли, тогда облегчи жизнь тем кто будет читать твой код:
1 Нормально отформатируй
2 Используй теги [code=] [/code]

PS 
Цитата(certt @  1.3.2007,  19:36 Найти цитируемый пост)
 Borland C++ 3.0.

мда

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