• Авторизация


Абстрактные классы 24-06-2009 16:21 к комментариям - к полной версии - понравилось!



Абстрактные классы используются для описания общих свойств некоторых сущностей. От асбтрактных классов не могут быть созданы объекты, однако, допускается использовать указатели типа абстрактного класса. В этом суть преимущества, - есть некая абстрактная сущность, которая объединяет многие классы. Класс остается абстрактным до тех пор, пока не содержит переопределения для «чистых» виртуальных функций.

class Point
{
public:
 int x,y;
 virtual void Show () = 0;
};
class Rectangle: public Point
{
public:
 int x1,y1;
}; //Абстрактный класс, т. к. виртуальная функция Show не переопределена
class ColorPoint: public Point
{
public:
 int color;
 void Show()
 {
 cout<<x<<","<<y<<endl;
 }
}; //От этого класса уже можно создавать объекты
void main()
{
 //Point p; //Ошибка нельзя создавать объекты от абстрактного класса
 //Rectangle r; //Ошибка нельзя создавать объекты от абстрактного класса
 ColorPoint cp;
 cp.y=15;
 cp.x=10;
 cp.Show(); //10,15
 Point *p=new ColorPoint; //Создаем указатель типа абстрактного класса
 p->x=10;
 p->y=20;
 p->Show(); //10,20
 _getch();
}

 

вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Абстрактные классы | TheLenka - Дневник Рыжей Девчонки | Лента друзей TheLenka / Полная версия Добавить в друзья Страницы: раньше»