Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы / vector_class / main
.cpp#include "main.h"
int main()
{
int xx[] = {2, 4, 2};
int yy[] = {5, 8, 3};
MyNum X(xx, sizeof(xx) / sizeof(int));
MyNum Y(yy, sizeof(yy) / sizeof(int));
MyNum Z;
// Создаем константный объект
const MyNum a=X;
// Получаем размер константного объекта
int sz=a.GetSize();
// Обращаемся к нулевому элементу константного объекта
printf("a[0] = %d\n", a[0]);
printf("Vector X:\n");
X.Show();
printf("Vector Y:\n");
Y.Show();
printf("X * Y = %d\n", X * Y);
printf("X * 5: ");
Z = X * 5;
Z.Show();
printf("5 * X: ");
Z = 5 * X;
Z.Show();
printf("X + Y: ");
Z = X + Y;
Z.Show();
printf("Y - X: ");
Z = Y - X;
Z.Show();
printf("X[0] = %d\n", X[0]);
printf("Y[1] = %d\n", Y[1]);
printf("X + X + X + X: ");
Z = X + X + X + X;
Z.Show();
printf("(X + X) * Y = %d\n", (X + X) * Y);
// Порядок действий - сначала скалярное произведение,
// потом - сложение чисел
printf("X * X + Y * Y = %d\n", X * X + Y * Y);
printf("B(X); B: ");
MyNum B(X);
B.Show();
printf("B = Y; B: ");
B = Y;
B.Show();
printf("X = 10; X: ");
// Создается вектор из 10 элементов конструктором
// MyNum::MyNum(int ns) и копируется перегруженным оператором=
// MyNum& operator=(const MyNum& mn)
// Этого можно избежать перегрузив оператор= для целого числа
// и выводя на экран сообщение об ошибке. Но это не
// совсем эффективное решение, т. к. программа будет выдавать
// сообщение об ошибке на этапе выполнения, а не компиляции
X = 10;
X.Show();
return 0;
}
Соседние файлы в папке vector_class