Г. Вывод программы
|
Вывод программы с классами COne, CTwo, CThree и CFour |
|
int main() { const int N = 5; // Создание объекта CFour tA("Text string", "Text string 2", "Text string 2 3", N); // Вызов метода print() для печати информации об объекте cout << "tA: ", tA.print(), cout << endl; // Вывод длин строк cout << "Lengths tA: " << tA.len() << ' ' << tA.getCOne()->len() << ' ' << tA.getCOnePoint()->len() << endl; cout << "Strings tA: " << tA.getString() << ' ' << tA.getCOne()->getString() << ' ' << tA.getCOnePoint()->getString() << endl; cout << "Values tA: " << tA.getCOne()->getValue() << ' ' << tA.getCOnePoint()->getValue() << endl; // Заполнение массива чисел типа double рандомными числами от 0 до 99 for (size_t i = 0; i < N; ++i) { tA[i] = rand() % 100; }
// Копирование конструктором cout << "======================" << endl; cout << "== Copy constructor ==" << endl; CFour tC(tA); cout << "tA: ", tA.print(), cout << endl; cout << "tC: ", tC.print(), cout << endl; // Копирование присваиванием cout << "=====================" << endl; cout << "== Copy assignment ==" << endl; tC = tA; cout << "tA: ", tA.print(), cout << endl; cout << "tC: ", tC.print(), cout << endl; |
|
tA: CFour [ CThree [ CTwo [ "Text string", COne {5, "Text string 2"} ], [0, 0, 0, 0, 0, 0] ], 5, 'Text string 2 3' ] Lengths tA: 11 13 15 Strings tA: Text string Text string 2 Text string 2 3 Values tA: 5 5 ====================== == Copy constructor == tA: CFour [ CThree [ CTwo [ "Text string", COne {5, "Text string 2"} ], [41, 41, 67, 34, 0, 69] ], 5, 'Text string 2 3'] tC: CFour [ CThree [ CTwo [ "Text string", COne {5, "Text string 2"} ], [41, 41, 67, 34, 0, 69] ], 5, 'Text string 2 3'] ===================== == Copy assignment == tA: CFour [ CThree [ CTwo [ "Text string", COne {5, "Text string 2"} ], [41, 41, 67, 34, 0, 69] ], 5, 'Text string 2 3'] tC: CFour [ CThree [ CTwo [ "Text string", COne {5, "Text string 2"} ], [41, 41, 67, 34, 0, 69] ], 5, 'Text string 2 3'] |
|
// Перемещение конструктором cout << "======================" << endl; cout << "== Move constructor ==" << endl; CFour tD(std::move(tA)); cout << "tA: ", tA.print(), cout << endl; cout << "tD: ", tD.print(), cout << endl; // Перемещение присваиванием cout << "=====================" << endl; cout << "== Move assignment ==" << endl; tD = std::move(tC); cout << "tC: ", tC.print(), cout << endl; cout << "tD: ", tD.print(), cout << endl; // Тест cout << "\nTEST:\n"; test(); } |
|
====================== == Move constructor == tA: CFour [ CThree [ CTwo [ undefined ] undefined ] undefined ] tD: CFour [ CThree [ CTwo [ "Text string", COne {5, "Text string 2"} ], [41, 41, 67, 34, 0, 69] ], 5, 'Text string 2 3'] ===================== == Move assignment == tC: CFour [ CThree [ CTwo [ undefined ] undefined ] undefined ] tD: CFour [ CThree [ CTwo [ "Text string", COne {5, "Text string 2"} ], [41, 41, 67, 34, 0, 69] ], 5, 'Text string 2 3']
TEST: CTwo [ "Text string 1", COne {3, "Text string 2"} ] CThree [ CTwo [ "Text string 3", COne {4, "Text string 4"} ], [0, 0, 0, 0, 0] ] CFour [ CThree [ CTwo [ "Text string 5", COne {5, "Text string 6"} ], [0, 0, 0, 0, 0, 0] ], 5, 'Text string 7' ] |
