С++ для начинающих



         

Почленная инициализация и присваивание * - часть 5


   NameQuery nm( "emma" );

   NotQuery nq1( &nm );

   cout << "notQuery 1: " << nq1 << endl;

   NotQuery nq2( nq1 );

   cout << "notQuery 2: " << nq2 << endl;

   NotQuery nq3( &nm2 );

   cout << "notQuery 3: " << nq3 << endl;

   nq3 = nq2;

   cout << "notQuery 3 присвоено значение nq2: " << nq3 << endl;

   AndQuery aq( &nq1, &nm2 );

   cout << "AndQuery : " << aq << endl;

   AndQuery aq2( aq );

   cout << "AndQuery 2: " << aq2 << endl;

   AndQuery aq3( &nm, &nm2 );

   cout << "AndQuery 3: " << aq3 << endl;

   aq2 = aq3;

   cout << "AndQuery 2 после присваивания: " << aq2 << endl;

}

После компиляции и запуска программа печатает следующее:

notQuery 1:  ! alice

notQuery 2:  ! alice

notQuery 3:  ! emma

notQuery 3 присвоено значение nq2:  ! alice

AndQuery :  ! alice && emma

AndQuery 2:  ! alice && emma

AndQuery 3:  alice && emma

AndQuery 2 после присваивания:  alice && emma

Упражнение 17.18

Реализуйте копирующие конструкторы в классах AndQuery и OrQuery.

Упражнение 17.19

Реализуйте копирующие операторы присваивания в классах AndQuery и OrQuery.

Упражнение 17.20

Что указывает на необходимость реализации явных копирующего конструктора и копирующего оператора присваивания?




Содержание  Назад  Вперед