ВУЗ:
Составители:
Рубрика:
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 будет вызван конструктор по умолчанию.
Страницы
- « первая
- ‹ предыдущая
- …
- 8
- 9
- 10
- 11
- 12
- …
- следующая ›
- последняя »