On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Реализация наследования

Наследование в языке C реализуются через указатели. Рассмотрим, например, конкретные подклассы Box и Circle абстрактного класса Shape. На языке C их можно представить следующим образом:

	struct Shape
	{
	  struct ShapeClass* class;
	  Length x;
	  Length y;
	};
	struct Box
	{
	  struct BoxClass* class;
	  Length x;
	  Length y;
	  Length width;
	  Length height;
	};
	struct Circle
	{
	  struct CircleClass* class;
	  Length x;
	  Length y;
	  Length radius;
	};

Указатель на структуры Box или Circle можно передать функции, ожидающей указатель на Shape, так как первые несколько членов структур Box и Circle идентичны первым членам структуры Shape (это позволяет привести тип указателя на структуру Box или Circle привести к типу указателя на структуру Shape).

Назад       Содержание       Вперёд