Новые книги

Данная книга в основном посвящена программированию в среде GNU/Linux. Авторы применяют обучающий подход, последовательно излагая самые важные концепции и методики использования расширенных возможностей системы GNU/Linux в прикладных программах. Читатели научатся писать программы, к интерфейсу которых привыкли пользователи Linux; освоят такие технологии, как многозадачность, многопотоковое программирование, межзадачное взаимодействие и взаимодействие с аппаратными устройствами; смогут улучшить свои программы, сделав их быстрее, надежнее и безопаснее; поймут особенности системы GNU/Linux, ее ограничения, дополнительные возможности и специфические соглашения.

Книга предназначена для программистов, уже знакомых с языком С и имеющих базовый опыт работы в GNU/Linux.
Что такое категорийный менеджмент и как его внедрять? Какие бывают категории? Как сбалансировать ассортимент и повысить финансовую отдачу от управления им? Ответы на эти и другие не менее важные для розничного магазина вопросы дает новое издание бестселлера по управлению ассортиментом, единственного в России практического пособия по построению системы категорийного управления товаром.

Книга предназначена для категорийных менеджеров, товароведов, закупщиков, коммерческих директоров, руководителей и директоров торговых предприятий – всех, кто отвечает за работу с ассортиментом в розничной компании.

В качестве бонуса к книге добавлено электронное приложение, включающее в себя наиболее востребованные формулы, таблицы и документы, необходимые в ежедневной работе категорийных менеджеров, а также дана развернутая информация о таких востребованных видах анализа, как АВC– и XYZ-анализ, оборачиваемость, прогнозирование спроса. Приложение доступно по ссылке

.

http://goo.gl/wYUflG

http://goo.gl/wYUflG

Преобразование классов в структуры данных

5.5.1. Преобразование классов в структуры данных

В языке C класс можно рассматривать как тип структуры, определенный в этом языке: поля структуры соответствуют атрибутам класса (при этом каждый атрибут может иметь простой, либо составной тип, т.е. тип структуры или массива). В таком случае каждый объект некоторого класса будет представлен конкретной структурой, экземпляром соответствующего типа структуры.

Методы реализуются в виде набора функций, описания которых можно указать в комментарии при определении типа структуры, определяющего описываемый класс. Программист должен сам следить за тем, чтобы при работе с экземплярами этого типа структуры использовались для доступа к ее полям только функции, перечисленные в указанном комментарии. В языке C++ это автоматически отслеживается компилятором и его подсистемой поддержки выполнения программ. Все функции, соответствующие методам, имеют дополнительный параметр, определяющий экземпляр структуры (объект), к которому применяется метод. В языке C++ этот параметр автоматически подставляется компилятором.

Например, класс Window можно представить как следующую структуру (struct) языка C:

	struct Window
	{
	/* структура соответствует классу 
	 * class Window
	* для которого определены следующие методы (все методы имеют
	* дополнительный параметр, Window* this, определяющий экземпляр
	* структуры (объект), к которому применяется метод):
	 * public:
	 * Window(Length x0, Length y0, Length width, Length height,
	*        Window* this);
	 * D_Window (Window* this); -- соответствует деструктору ~Window()
	* void add_box (Length x, Length y, Length width, Length height,
	*               Window* this);
	* void add_circle (Length x, Length y, Length radius, Window* this);
	* void clear_selections (Window* this);
	* void cut_selections (Window* this);
	* Group* group_selections (Window* this);
	* void move_selections (Length deltax, Length deltay, Window* this);
	* void redraw_all (Window* this);
	* void select_item (Length x, Length y, Window* this);
	* void ungroup_selections (Window* this);
	* private:
	* void add_to_selections (Shape* shape, Window* this);
	 */
	  Length xmin;
	  Length ymin;
	  Length xmax;
	  Length ymax;
	};
	При этом предполагается, что тип Length введен через
	  typedef floast Length;
	Ссылки на объекты класса Window реализуются как указатели языка C:
	  struct Window* window;
	  Length x1 = window->xmin;

Объект может быть при этом размещен статически, автоматически (в стеке), или динамически (в куче).

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