Отправляет email-рассылки с помощью сервиса Sendsay

Инвестирование с нуля

  Все выпуски  

Программирование на Си и С++ с нуля 163) Методы классов


Школа программирования

163) Программирование на С++: Методы классов

Обращаю внимание - мой почтовый ящик из-за спама сменился. Новый - в конце рассылки. Кроме того, на адреса домена мэйл ру от меня письма не уходят, поэтому если пишете мне, то на мейл ру я ответить не смогу.

*

Методы классов

Поля класса - это фактически переменные, которые доступны только внутри классов. Было бы логичным дополнить их функциями - и именно так и сделано :)

Методы класса - это обычные функции, которые определены внутри класса. Соответственно, они могут обращаться к внутренним полям своего класса. Таким образом красиво объединены в одно целое (класс и его физическая реализация - объект) данные (поля класса) и способы (функции) их обработки (методы класса).

Методы описываются так же, как и обычные функции. Только их описание располагается внутри класса. Например, определим метод класса Car (автомобиль) - он был описан в прошлом выпуске:

  class Car
   {
   public:
    double Benzin; // бензин

   private:
    double Rasst; // пройденное расстояние
   };

Мы зададим метод Go(), который будет получать на входе расстояние, которое надо преодолеть. Пусть оно задается в километрах.
Этот метод будет сдвигать автомобиль на заданное расстояние, и при этом снижать запас горючего.

Данный метод должен быть видимым (public), чтобы его можно было применять к конкретным объектам.

   class Car
     {
     public:
      double Benzin; // бензин

      void Go( float dist ) {
      Benzin -= dist / 10; // 1 литр бенза на 10 км
      Rasst += dist; // проехали
      }

     private:
      double Rasst; // пройденное расстояние
     };

Здесь еще надо учесть, что бензина на заданное расстояние может не хватить :) Поэтому данный код надо дополнить проверкой, не превышает ли расход бензина текущий запас, и сдвинуть машину с учетом текущего запаса.

Если метод длинный, содержит много операторов, то его можно вынести за пределы описания класса. В таком случае в классе оставляем лишь заголовок, а реализацию дополняем префиксом (перед именем метода) в виде

имя-класса ::

Например:

  class Car
   {
   public:
    double Benzin; // бензин
    void Go( float dist ); // здесь - только заголовок!

   private:
    double Rasst; // пройденное расстояние
   };

   // реализация метода Go из класса Car:
   void Car::Go( float dist ) {
      Benzin -= dist / 10; // 1 литр бенза на 10 км
      Rasst += dist; // проехали
    }

Обращение к методу записывается так же, как и к полю класса:

   Car * car1;
   car1 = new Car;
   car1->Benzin = 9;
   car1->Go(100.0);

В следующем занятии мы изучим, как создавать новые классы на базе уже существующих классов (принцип наследования).


(c) 2004-2007 Сергей Бобровский : bo собака russianenterprisesolutions.com

Школа программирования с нуля
Все предыдущие выпуски базового курса всегда тут:
http://www.infiltration.ru/p/

Неофициальный сайт поддержки (со срочными вопросами - сюда):
www.prog-begin.net.ru.


Мои книги (учебные курсы) "Технологии Delphi / C++ / C#. Разработка приложений для бизнеса".
http://shop.piter.com/display.phtml?a_id=17681&web_ok=all

Все эти учебные курсы рассчитаны не только на разработчиков, но и на всех тех, кто хочет стать ИТ-менеджером. Для этого как минимум нужно иметь общее представление о современных технологиях разработки и их истории и владеть соответствующей терминологией.
В книгах описаны десятки технологий, каждой из которых посвящены отдельные книги. Таким образом, купив один учебный курс, вы существенно сэкономите :) В книгах полностью описаны:
- Delphi (версия 2006, полностью совместимая с Delphi 2005/2006/2007 и Turbo Delphi) для обеих платформ - Win32 и .NET;
- C# (новый язык Microsoft, на котором базируется платформа .NET и все новые версии Windows);
- C++ для платформы Win32.
Охвачены также темы работы с файлами на этих платформах, создания файл-серверных, клиент-серверных, распределенных приложений, веб-программ (Indy, ASP.NET, веб-сервисы). Описаны языки SQL и OCL. Немало глав посвящены истории программирования и различных технологий. Особое внимание уделено созданию программ с помощью технологии ECO и языка моделирования UML - программы фактически рисуются, и теперь даже для создания корпоративных приложений и их переноса в Интернет не обязательно знать программирование!
Отдельная часть отведена технологиям организации групповой работы, управления требованиями, контроля версий, локализации и тестирования.
Тут подробнее про книги.

Мои книги, которые пока доступны в продаже:


Дизайн рассылки: Алексей Голубев - Web-дизайн и web-программирование


В избранное