Объектно-ориентированное программирование на языке С++. Ноткин А.М. - 12 стр.

UptoLike

Составители: 

13
3. Следует предусмотреть в программе все возможные способы вы-
зова конструктора копирования. Напоминаем, что конструктор копирова-
ния вызывается:
а) при использовании объекта для инициализации другого объекта
Пример.
STUDENT a(“Иванов”,19,50), b=a;
б) когда объект передается функции по значению
Пример.
void View(STUDENT a){a.Show;}
в) при построении временного объекта как возвращаемого значения
функции
Пример.
STUDENT NoName(STUDENT & student)
{STUDENT temp(student);
temp.SetName(“NoName”);
return temp;}
STUDENT c=NoName(a);
4. В программе необходимо предусмотреть размещение объектов как
в статической, так и в динамической памяти, а также создание массивов
объектов.
Примеры.
а) массив студентов размещается в статической памяти
STUDENT gruppa[3];
gruppa[0].Set(“Иванов”,19,50);
и т.д.
или
STUDENT gruppa[3]={STUDENT(“Иванов”,19,50),
STUDENT(“Петрова”,18,25.5),
STUDENT(“Сидоров”,18,45.5)};
б) массив студентов размещается в динамической памяти
STUDENT *p;
p=new STUDENT [3];
p-> Set(“Иванов”,19,50);
и т.д.
5. Пример использования указателя на компонентную функцию
void (STUDENT::*pf)();
pf=&STUDENT::Show;
(p[1].*pf)();
                                 13

      3. Следует предусмотреть в программе все возможные способы вы-
зова конструктора копирования. Напоминаем, что конструктор копирова-
ния вызывается:
      а) при использовании объекта для инициализации другого объекта
      Пример.
      STUDENT a(“Иванов”,19,50), b=a;
      б) когда объект передается функции по значению
      Пример.
      void View(STUDENT a){a.Show;}
      в) при построении временного объекта как возвращаемого значения
функции
      Пример.
      STUDENT NoName(STUDENT & student)
      {STUDENT temp(student);
      temp.SetName(“NoName”);
      return temp;}

     STUDENT c=NoName(a);

      4. В программе необходимо предусмотреть размещение объектов как
в статической, так и в динамической памяти, а также создание массивов
объектов.
      Примеры.
      а) массив студентов размещается в статической памяти
      STUDENT gruppa[3];
      gruppa[0].Set(“Иванов”,19,50);
      и т.д.
      или
      STUDENT gruppa[3]={STUDENT(“Иванов”,19,50),
                      STUDENT(“Петрова”,18,25.5),
                      STUDENT(“Сидоров”,18,45.5)};
      б) массив студентов размещается в динамической памяти
      STUDENT *p;
      p=new STUDENT [3];
      p-> Set(“Иванов”,19,50);
             и т.д.

     5. Пример использования указателя на компонентную функцию
     void (STUDENT::*pf)();
     pf=&STUDENT::Show;
     (p[1].*pf)();