Объектно-ориентированное программирование. Богомолов А - 10 стр.

UptoLike

10
- передача объекта в функцию по значению;
- при возврате объекта из функции через тип функции;
- декларация объекта с использованием инициализации уже существующих объек-
тов;
my m1;
my m2 = m1;
m1 – новый объект; m2 – уже существующий; то есть требуется сделать копию,
переписать значения из m1 в m2. Это делает конструктор копирования.
Синтаксис конструктора копирования.
имя_класса (имя класса & obj)
{
} тело конструктора
Для класса my можно рекомендовать следующий конструктор:
my :: my (my & obj)
{cont << end l << “конструктор копирования”;
x = obj. x;
y = obj. y; }прямое побитовое копирование
Передача объекта из функции через тип функции (т.е. использование return)
Возьмем для класса my функцию суммирования:
Сумма объекта my
21
, mm
;
получить третий объект
213
mmm
+
=
то есть, требуется m3. x = m1. x + m2. x
m3. y = m1. y + m2. y
так как x, y – закрытые члены класса, операцию подобного вида во внешней функции
выполнить невозможно, поэтому в правой части использовать функцию типа ret (), а в
левой – set ().
Функция суммирования объектов имеет вид:
my sum (my m1, my m2)
{ my m3;
m3. set x (m1. ret x ( ) + m2. ret x ( ));
m3. set y (m1. ret y ( ) + m2. ret y ( ));
return (m3);
}
Для функции суммирования sum;
21
, mm - передача по значению два раза будет вызван конструктор копирования.
Для m3 будет вызван конструктор по умолчанию.
                                           10


-   передача объекта в функцию по значению;
-   при возврате объекта из функции через тип функции;
-   декларация объекта с использованием инициализации уже существующих объек-
    тов;
                             my m1;
                             my m2 = m1;
       m1 – новый объект; m2 – уже существующий; то есть требуется сделать копию,
переписать значения из m1 в m2. Это делает конструктор копирования.

      Синтаксис конструктора копирования.
      имя_класса (имя класса & obj)
          {
       } тело конструктора

      Для класса my можно рекомендовать следующий конструктор:

      my :: my (my & obj)
              {cont << end l << “конструктор копирования”;
            x = obj. x;
            y = obj. y; }прямое побитовое копирование

      Передача объекта из функции через тип функции (т.е. использование return)

      Возьмем для класса my функцию суммирования:

    Сумма объекта my m1 , m2 ;
    получить третий объект m3 = m1 + m2
    то есть, требуется m3. x = m1. x + m2. x
                   m3. y = m1. y + m2. y

так как x, y – закрытые члены класса, операцию подобного вида во внешней функции
выполнить невозможно, поэтому в правой части использовать функцию типа ret (), а в
левой – set ().

    Функция суммирования объектов имеет вид:

            my sum (my m1, my m2)
           { my m3;
              m3. set x (m1. ret x ( ) + m2. ret x ( ));
              m3. set y (m1. ret y ( ) + m2. ret y ( ));
              return (m3);
            }
        Для функции суммирования sum;
m1 , m2 - передача по значению два раза будет вызван конструктор копирования.
        Для m3 будет вызван конструктор по умолчанию.