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

Организовать перегрузку оператора (=) - C++

Восстановить пароль Регистрация
 
denisneposeda
46 / 46 / 12
Регистрация: 18.10.2010
Сообщений: 212
15.12.2011, 15:14     Организовать перегрузку оператора (=) #1
Тема: Разработка алгоритмов и программ по реализации перегрузки операторов

Задание: Для создания объекта a, разработанного класса – вектор (одномерный массив), реализовать перегрузку операции = (a=b). Содержимое объекта (a,b их векторов), до и после выполнения операции, вывести на экран.

Добавлено через 27 минут
up

ребята...срочно нужно...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2011, 15:14     Организовать перегрузку оператора (=)
Посмотрите здесь:

C++ Как сделать в данной программе перегрузку оператора?
Сочетания оператора цикла и условного оператора C++
C++ сравнить два целых числа, не используя условного оператора, оператора выбора и так же символов сравнения
Общие символы для двух строк(своего класса) через перегрузку оператора C++
Не выводит перегрузку оператора сложения C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
15.12.2011, 16:18     Организовать перегрузку оператора (=) #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
#include <iostream>
 
template<typename T>
class vector
{
   T* array;
   size_t size;
public:   
   vector(): array(0), size(0) {}
   vector(size_t n): array(new T[n]), size(n) {}
   ~vector() {delete [] array;}
   T& operator[](size_t ind) {return array[ind];}
   const T& operator[](size_t ind) const {return array[ind];}   
 
   vector<T>& operator = (const vector<T>& a)
   {
      delete []array;
      array = new T[a.size];
      size = a.size;
      for(size_t i = 0; i < a.size; i++)
         array[i] = a[i];
      return *this;
   }
   size_t length() const {return size;}
};
 
 
int main()
{
   vector<int> a(3), b(2);
   
   a[0] = 0;
   a[1] = 1;
   a[2] = 2;
   
   b[0] = 4;
   b[1] = 5;
   
   std::cout << "before:" << std::endl;
   for(size_t i = 0; i < a.length(); i++)
      std::cout << a[i] << std::endl;
      
   a = b;
   
   std::cout << "after:" << std::endl;   
   for(size_t i = 0; i < a.length(); i++)
      std::cout << a[i] << std::endl;
}
denisneposeda
46 / 46 / 12
Регистрация: 18.10.2010
Сообщений: 212
15.12.2011, 16:21  [ТС]     Организовать перегрузку оператора (=) #3
спасибо.....но хотелось бы без использования шаблонов...
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
15.12.2011, 16:24     Организовать перегрузку оператора (=) #4
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
#include <iostream>
 
class vector
{
   int* array;
   size_t size;
public:   
   vector(): array(0), size(0) {}
   vector(size_t n): array(new int[n]), size(n) {}
   ~vector() {delete [] array;}
   int& operator[](size_t ind) {return array[ind];}
   int operator[](size_t ind) const {return array[ind];}   
 
   vector& operator = (const vector& a)
   {
      delete []array;
      array = new int[a.size];
      size = a.size;
      for(size_t i = 0; i < a.size; i++)
         array[i] = a[i];
      return *this;
   }
   size_t length() const {return size;}
};
 
 
int main()
{
   vector a(3), b(2);
   
   a[0] = 0;
   a[1] = 1;
   a[2] = 2;
   
   b[0] = 4;
   b[1] = 5;
   
   std::cout << "before:" << std::endl;
   for(size_t i = 0; i < a.length(); i++)
      std::cout << a[i] << std::endl;
      
   a = b;
   
   std::cout << "after:" << std::endl;   
   for(size_t i = 0; i < a.length(); i++)
      std::cout << a[i] << std::endl;
}
denisneposeda
46 / 46 / 12
Регистрация: 18.10.2010
Сообщений: 212
15.12.2011, 16:33  [ТС]     Организовать перегрузку оператора (=) #5
благодарю)
Yandex
Объявления
15.12.2011, 16:33     Организовать перегрузку оператора (=)
Ответ Создать тему
Опции темы

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