Добрый день! Помогите пожалуйста! Надо перегрузить :
Код:
float Kol::getIndicator() 
{
   return (M_PI*radius2*radius2)-(M_PI*getRadius()*getRadius());
}
и ввод , и вывод! 
Вот код на всю программу(без перегруза):
Код:
/*Описать иерархию классов: 
точка (целые координаты), окружность наследует точку, 
являющуюся ее центром, цилиндр наследует окружность, являющуюся его основанием. 
Реализовать методы: конструкторы классов без параметров, конструкторы классов с параметрами, 
функции вывода значений закрытых полей данных, функции доступа к закрытым данным, виртуальные функции: 
для класса точка возвращает нуль, для класса окружность возвращает ее длину, 
для класса цилиндр вычисляет площадь его поверхности.*/
#include <iostream>
#include <math.h>
#include <fstream>
#include <conio.h>
using namespace std;
#define M_PI       3.14159265358979323846
class Point
{
public:
   Point();
   Point(int x, int y);//Конструктор с параметрами
   void setX(int x);
   void setY(int y);
   int getX();//координаты х
   int getY();//координаты у
   virtual float getIndicator(); //Точка возвращает 0
private:
   int x;
   int y;
};
Point::Point()
{
   x = 0;
   y = 0;
}
Point::Point(int x1, int y1)
{
   x = x1;
   y = y1;
}
void Point::setX(int x1)
{
   x = x1;
}
void Point::setY(int y1)
{
   y = y1;
}
int Point::getX()
{
   return x;
}
int Point::getY()
{
   return y;
}
float Point::getIndicator()
{
   return 0;
}
class Circle: public Point
{
public:
   Circle();
   Circle(Point p, int r);
   Circle(int x, int y, int r);//Конструктор с параметрами
   void setRadius(int r);//Конструктор с параметрами 2
   int getRadius();//Радиус окружности
   virtual float getIndicator();//Круг возвращает длину окружности
private:
   int radius;
};
Circle::Circle()
{
}
Circle::Circle(int x1, int y1, int r)
   : Point(x1, y1)
{
   radius = r;
}
Circle::Circle(Point p, int r)
   : Point(p.getX(), p.getY())
{
   radius = r;
}
void Circle::setRadius(int r)
{
   radius = r;
}
int Circle::getRadius()
{
   return radius;
}
float Circle::getIndicator()
{
   return radius*M_PI*2.0;
}
class Kol: public Circle
{
public:
   Kol();
   Kol(int x, int y, int r, int rr);//Конструктор с параметрами
   Kol(Circle c, int rr);//Конструктор с параметрами 2
   void setRadius2(int rr);
   int getRadius2();//Высота цилиндра
   virtual float getIndicator();//Цилиндр возвращает площадь поверхности
private:
   int radius2;
};
Kol::Kol()
{
}
Kol::Kol(int x1, int y1, int r, int rr)
   : Circle(x1, y1, r)
{
   radius2 = rr;
}
Kol::Kol(Circle c, int rr)
   : Circle(c.getX(), c.getY(), c.getRadius())
{
   radius2 = rr;
}
void Kol::setRadius2(int rr)
{
   radius2 = rr;
}
int Kol::getRadius2()
{
   return radius2;
}
float Kol::getIndicator() 
{
   return (M_PI*radius2*radius2)-(M_PI*getRadius()*getRadius());
}
void Show(Point p, Circle c, Kol k)
{
   cout<<p.getIndicator()<<"       - возврат нуля"<<endl;
   cout<<c.getIndicator()<<" - длина круга"<<endl;
   cout<<k.getIndicator()<<" - площадь кольца"<<endl;
}
void main()
{
   setlocale (LC_ALL, "Russian");
   int x1, y1, r1, rr;
   Point p;
   Circle circle;
   Kol kol;
   cout<<"-------------------"<<endl;
   cout<<"Координаты точки:"<<endl;
   cout<<"X1= "; cin>>x1;
   cout<<"Y1= "; cin>>y1;
   cout<<"-------------------"<<endl;
   cout<<"Радиус:"<<endl;
   cout<<"R1=  "; cin>>r1;
   cout<<"-------------------"<<endl;
   cout<<"R2 ( R2 > R1 )=  "; cin>>rr;
   cout<<"-------------------"<<endl;
   Point t(1, 2);
   Circle K(t, 4);
   Kol Kol(K, rr);
   Show(t, K, Kol);
   getch();
}