Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
10
Добавлен:
02.05.2014
Размер:
2.59 Кб
Скачать
#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
  • #
    02.05.20144.46 Кб10class_vector.dsp
  • #
    02.05.2014547 б11class_vector.dsw
  • #
    02.05.201466.56 Кб11class_vector.ncb
  • #
    02.05.201448.64 Кб11class_vector.opt
  • #
    02.05.20141.29 Кб10class_vector.plg
  • #
    02.05.20142.59 Кб10main.cpp
  • #
    02.05.201438 б10main.h
  • #
    02.05.20144.19 Кб10vm1.h