Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы / vector_template / main
.cpp#include "main.h"
int main()
{
int xx[] = {2, 4, 2};
int yy[] = {5, 8, 3};
MyNum<int> X(xx, sizeof(xx) / sizeof(int));
MyNum<int> Y(yy, sizeof(yy) / sizeof(int));
MyNum<int> Z;
// Создаем константный объект
const MyNum<int> 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<int> B(X);
B.Show();
printf("B = Y; B: ");
B = Y;
B.Show();
double X_d_arr[] = {6.3, 7.8, 3.2};
double Y_d_arr[] = {8.3, -5.4, 5.2};
MyNum<double> X_d(X_d_arr, 3), Y_d(Y_d_arr, 3);
MyNum<double> Z_d = X_d + Y_d;
printf("\n\n");
printf("X_d = ");
X_d.Show();
printf("Y_d = ");
Y_d.Show();
printf("Z_d = X_d + Y_d\n");
printf("Z_d = ");
Z_d.Show();
printf("X_d * Y_d = %lf\n", X_d * Y_d);
short X_s_arr[] = {1, 2, 3, 4, 5};
MyNum<short> X_s(X_s_arr, 5);
printf("\n\n");
printf("X_s = ");
X_s.Show();
printf("X_s[2] = %hd\n", X_s[2]);
// Требуется привести цифру "5" к типу short явно
X_s = X_s * static_cast<short>(5);
printf("X_s = X_s * 5\n");
printf("X_s = ");
X_s.Show();
MyNum<short> Y_s(X_s);
printf("MyNum<short> Y_s(X_s);\n");
printf("Y_s = ");
Y_s.Show();
// Приводим типы, т. к. когда компилятор встречает число с точкой,
// он предполагает, что это double. Можно и без преобразования
// типов, но тогда будет предупреждающее сообщение
float X_f_arr[] = {static_cast<float>(-1), static_cast<float>(3.5),
static_cast<float>(4)};
float Y_f_arr[] = {static_cast<float>(8), static_cast<float>(7.4),
static_cast<float>(-2.1)};
MyNum<float> X_f(X_f_arr, 3), Y_f(Y_f_arr, 3);
printf("\n\n");
printf("X_f = ");
X_f.Show();
printf("Y_f = ");
Y_f.Show();
MyNum<float> Z_f = X_f - Y_f;
printf("MyNum<float> Z_f = X_f - Y_f\n");
printf("Z_f = ");
Z_f.Show();
return 0;
}
Соседние файлы в папке vector_template