И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина





НазваниеИ. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина
страница13/32
Дата публикации01.09.2013
Размер1.4 Mb.
ТипЛекция
100-bal.ru > Информатика > Лекция
1   ...   9   10   11   12   13   14   15   16   ...   32

6. Упражнения


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

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

  3. В классе CCard (см. фрагмент программы 3.2) для определения цвета карты по ее масти используется целочисленное деление. Опишите достоинства и недостатки этого приема. Перепишите соответствующий метод так, чтобы убрать зависимость от конкретных значений, приписанных мастям карт.

  4. Рассмотрите две показанные ниже комбинации класса и функции. Объясните разницу в применении функции addi() с точки зрения пользователя. Можно ли заменить эту функцию перегруженным оператором?

class example1 {

  public :

    int i;

};
int addi( example1& x, int j)

{

  x.i += j;

  return x.i;

}

class example2 {

  public :

    int i;
    int addi( int j )

      { i += j; return i; }

}

Лекция 4. Создание объектов и пересылка сообщений

1. Синтаксис пересылки сообщений


Термин "пересылка сообщения" обозначает процесс обращения к объекту с требованием выполнить определенное действие. В 1-й лекции были отмечены основные отличия пересылки сообщения от обычного вызова процедуры:

  • Сообщение всегда обращено к некоторому объекту, который называется получателем или адресатом.

  • Действие, выполняемое в ответ на сообщение, не является фиксированным и может варьироваться в зависимости от класса получателя. Различные объекты, принимая одно и то же сообщение, выполняют различные действия (это свойство ООП называется полиморфизмом).

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

В Си++ пересылка сообщения называется вызовом функции-члена. Описание класса похоже на описание структуры. Синтаксис вызова функции-члена аналогичен обращению к полям данных (атрибутам объекта):

<имя объекта-получателя>.<название сообщения>(<список параметров>);

Например, если есть объект theCard класса CCard, то для отображения этой игральной карты в окне win в точке с координатами (50, 45), надо вызвать функцию-член так:

theCard.Draw( win, 50, 45 );

Как и при вызове обычных функций в Си++, если у функции-члена нет параметров, все равно требуется указывать круглые скобки. Благодаря такой записи компилятор отличает вызов функций-членов от обращения к полям данных. Например, проверка расположения карты может быть выполнена следующим образом:

if ( theCard.IsFaceUp() )

{

...

}

else

{

...

}

Внутри каждой функции-члена доступна предопределенная переменная-указатель this, которая указывает на объект-получатель (т.е. объект, у которого была вызвана функция-член). Например, функцию-член CCard.GetColor() можно реализовать так:
Color CCard::GetColor()

{

if ( this->GetSuit() == Heart || this->GetSuit() == Diamond )

return Red;

return Black;

}
Но в приведенном примере по правилам Си++ использование this является избыточным, т.к. вызов функции-члена без явного указания получателя или обращение к атрибуту интерпретируются как обращение к текущему получателю. Поэтому обычная форма записи для функции-члена GetColor() следующая:
Color CCard::GetColor()

{

if ( GetSuit() == Heart || GetSuit() == Diamond )

return Red;

return Black;

}
Тем не менее, переменная this часто используется, если внутри функции-члена надо передать получателя сообщения в качестве параметра другой функции, например:
void COneClass::aMessage( CAnotherClass& ca, int x )

{

// Передать текущий объект в качестве параметра некоторой

// функции-члену объекта ca класса CAnotherClass

ca.doSomething( this, x );

}

1   ...   9   10   11   12   13   14   15   16   ...   32

Похожие:

И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconИ. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной...
...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconИ. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной...
...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconПротокол №5 От 12 января 2012 г Заседания кафедры электроники и вычислительной...
Зав кафедрой Хакимова Г. Г. сообщила, что кафедра проводит 2-й Чемпионат по цифровой схемотехнике
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconМетодические рекомендации по подготовке, оформлению, предзащите и...
В. А. Усков, заместитель декана естественно-географического факультета по развитию, доцент кафедры физической географии и методики...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconПроблемы коммуникации
М. Е. Евсевьева (зав кафедрой, доцент А. А. Ветошкин); С. А. Борисова, директор Института международных отношений Ульяновского государственного...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconПрограмма по формированию навыков безопасного поведения на дорогах...
Елена Святославовна Симакова, кандидат педагогических наук, доцент кафедры гуманитарных и естественнонаучных дисциплин Рязанского...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconПрограмма курса по выбору «Орнитология» предназначена для студентов...
Автор программы: к б н., доцент, зав кафедрой биологии и химии Марина Николаевна Харламова
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconРоссийской Федерации Федеральное государственное образовательное...
Петренко И. М., зав кафедрой экономической теории, д-р экон наук профессор Дулин М. П., зав кафедрой педагогики и психологии, д-р...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconРахманкулова Людмила Кузьминична, кандидат филологических наук, доцент...
Автор программы: С. А. Виноградова, кандидат филологических наук, доцент, зав кафедрой английского языка и английской филологии
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconПрограмма по формированию навыков безопасного поведения на дорогах...
...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconЛингвистические проблемы
Московского государственного педагогического института иностранных языков им. М. Тореза (зав кафедрой доцент Ю. А. Денисенко); д-р...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconМгпу учебно-методический комплекс дисциплины
А. В. Прялухина, кандидат психологических наук, доцент, зав кафедрой психологии Российского государственного социального университета...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconРабочая программа по дисциплине «теория экономического анализа»
Рецензент: к с н., доцент, зав кафедрой «Экономики и управления на предприятии и маркетинга» Пятигорского государственного гуманитарно-технологического...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconРабочая программа по дисциплине «международный менеджмент»
Рецензент: к с н., доцент, зав кафедрой «Экономики и управления на предприятии и маркетинга» Пятигорского государственного гуманитарно-технологического...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconМетодические рекомендации по написанию курсовых работ дисциплине
Рецензент: к с н., доцент, зав кафедрой «Экономики и управления на предприятии и маркетинга» Пятигорского государственного гуманитарно-технологического...
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной техники Рязанского государственного педагогического университета им. С. А. Есенина iconУчебное пособие Краснодар 2008
В. А. Оробец); кафедра паразитологии и ветсанэкспертизы Донского государственного аграрного университета (зав кафедрой, проф., к...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск