Новые книги

Что отличает людей, достигающих великолепных результатов в своем деле, от всех прочих? Почему многие из нас остаются крепкими середнячками, тогда как те, с кем мы начинали, становятся профессионалами мирового уровня? Можем ли мы вообще претендовать на что-то выдающееся или это удел избранных? Что определяет наш успех? Образование? Опыт работы? Амбиции? Талант?

Автор этой книги, колумнист и редактор Fortune, уверен: талант (равно как и все вышеперечисленное) здесь ни при чем! Экстраординарные результаты достигаются людьми, которые особым образом практикуются в избранной сфере деятельности — это доказано солидными исследованиями. И эта «осознанная практика», описанная в книге, доступна абсолютно всем.

Перед вами новое российское издание бестселлера Джеффа Колвина. Ранее книга выходила под названием «Выдающиеся результаты. Талант ни при чем!».
Эта книга про то, как создать успешный канал на Youtube. Зачем? Например, чтобы зарабатывать деньги разными способами. Кроме того, с помощью канала на Youtube можно делиться идеями, учить людей, рекламировать продукцию и осуществлять пропаганду — в общем, влиять на умы и сердца людей в корыстных и бескорыстных целях.

Реализация классов

5.3.1. Реализация классов

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

	class Window
	{
	public:
	  // конструктор
	  Window (Length x0, Length y0, Length width, Length height);
	  // деструктор
	  ~Window ();
	  // методы
	  void add_box (Length x, Length y, Length width, Length height);
	  void add_circle (Length x, Length y, Length radius);
	  void clear_selections ();
	  void cut_selections ();
	  Group* group_selections ();
	  void move_selections (Length deltax, Length deltay);
	  void redraw_all ();
	  void select_item (Length x, Length y);
	  void ungroup_selections ();
	private:
	  Length xmin;
	  Length ymin;
	  Length xmax;
	  Length ymax;
	  void add_to_selections (Shape* shape);
	};

В определении класса на языке C++ и атрибуты, и методы называются членами этого класса; их определения могут следовать в тексте определения класса в произвольном порядке. Члены класса могут быть общедоступными (public), или приватными (private); вне класса определен доступ только к его общедоступным членам, а приватные члены доступны только методам своего класса. В рассматриваемом примере все атрибуты являются приватными, а все методы (кроме метода add_to_selections) - общедоступными, так что прочитать или изменить значение каждого атрибута можно только с помощью соответствующего метода; это рекомендуемая, хотя и не обязательная дисциплина программирования на языке C++ (определение всех атрибутов класса как приватных называется инкапсуляцией данных).

Тип Length должен быть определен пользователем (обычно такие определения делаются в одном из файлов-заголовков, вставляемых в программу по #include). Для определения типа используется оператор typedef. Например:

	typedef float Length;
или
	typedef int Length;

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