Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Lordi1289
2 / 2 / 0
Регистрация: 02.11.2010
Сообщений: 103
#1

Класс вектор - C++

18.06.2012, 12:36. Просмотров 1155. Ответов 5
Метки нет (Все метки)

Создать абстрактный тип данных - класс вектор, который имеет указатель на float, число элементов и переменную состояния. Определить конструктор без параметров, конструктор с параметром, конструктор с двумя параметрами. Конструктор без параметров выделяет место для одного элемента и инициализирует его в ноль. Конструктор с одним параметром, - размер вектора, - выделяет место и инициализирует номером в массиве, конструктор с двумя параметрами выделяет место (первый аргумент) и инициализирует вторым аргументом. Деструктор освобождает память. Определить функцию, которая присваивает элементу массива некоторое значение (параметр по умолчанию), функцию которая получает некоторый элемент массива. В переменную состояния устанавливать код ошибки, когда не хватает памяти, выходит за пределы массива. Определить функцию печати. Определить функции сложения, умножения, вычитания, которые производят эти арифметические операции с данными этого класса и встроенного float. Определить методы сравнения: больше, меньше или равно. Предусмотреть возможность подсчета числа объектов данного типа. Проверить работу этого класса.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2012, 12:36     Класс вектор
Посмотрите здесь:

Класс Вектор C++
Класс вектор C++
Класс вектор C++
Класс Вектор C++
C++ Класс-вектор в С++
C++ Класс вектор
C++ Класс вектор С++
C++ класс Вектор
C++ Класс вектор
Класс Вектор C++
Класс Вектор C++
Класс вектор C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asidorchenko
379 / 205 / 25
Регистрация: 09.04.2012
Сообщений: 635
18.06.2012, 13:46     Класс вектор #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include <stdio.h>
 
class vector
{
 private:
  float* f;
  int sz;
  int state;
  static int n;
 
 public:
  vector()
  { 
   f = new float[1];
   f[0] = 0;
   sz = 1;
   state = 0;
   n++;
  };
 
  vector(int a)
  {
   f = new float[a];
   int i;
   for(i=0;i<a;i++)
    f[i] = i;
   sz = a;
   state = 0;
   n++;
  };
 
  vector(int a, float b)
  {
   f = new float[a];
   int i;
   for(i=0; i<a;i++)
    f[i] = b;
   sz = a;
   state = 0;
   n++;
  };
 
  ~vector()
  {
   delete []f;
  };
 
  void setv(int a, float b)
  {
   f[a] = b;
  };
 
  float getv(int a)
  {
   return f[a];
  };
 
  void print()
  {
   int i;
   for (i = 0; i < sz; i++)
    printf("%d ", this->f[i]); 
  };
 
  friend int operator>(vector* a)
  {
   int i;
   for (i = 0; i < sz; i++)
   {
    if ( !( this->f[i] > a->f[i] ) )
     return 0;
   }
   return 1;
  };
 
  friend int operator==(vector* a)
  {
   int i;
   for (i = 0; i < sz; i++)
   {
    if ( !( this->f[i] == a->f[i] ) )
     return 0;
   }
   return 1;
  };
 
  friend int operator<(vector* a)
  {
   int i;
   for (i = 0; i < sz; i++)
   {
    if ( !( this->f[i] < a->f[i] ) )
     return 0;
   }
   return 1;
  };
 
  friend void operator+(vector* a)
  {
   int i;
   for (i = 0; i < sz; i++) 
    this->f[i] += a->f[i];
  };
 
  friend void operator-(vector* a)
  {
   int i;
   for (i = 0; i < sz; i++) 
    this->f[i] -= a->f[i];
  };
 
  friend void operator*(vector* a)
  {
   int i;
   for (i = 0; i < sz; i++) 
    this->f[i] *= a->f[i];
  };
 
 
  // число подсчета объектов данного типа
 
};
 
 
int main()
{
 
 
 return 0;
};
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
18.06.2012, 13:52     Класс вектор #3
asidorchenko, Первый вопрос - почему все операторы принимают указатель на вектор, вместо const ссылки?
Второй вопрос - зачем все операторы сделаны friend функциями, если это абсолютно не нужно?
sandye51
программист С++
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
18.06.2012, 13:54     Класс вектор #4
Цитата Сообщение от ForEveR Посмотреть сообщение
Второй вопрос - зачем все операторы сделаны friend функциями, если это абсолютно не нужно?
а где логика? "не нужно" это не объяснение
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
18.06.2012, 13:55     Класс вектор #5
sandye51, Зачем функцию делать friend, если ее можно сделать свободной?
sandye51
программист С++
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
18.06.2012, 13:56     Класс вектор #6
ForEveR, а, ну если в этом смысле, то согласен.
я почему-то подумал что имеете ввиду сделать ее методом класса
Yandex
Объявления
18.06.2012, 13:56     Класс вектор
Ответ Создать тему
Опции темы

Текущее время: 23:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru