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

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

Войти
Регистрация
Восстановить пароль
 
denisneposeda
46 / 46 / 12
Регистрация: 18.10.2010
Сообщений: 212
#1

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

15.12.2011, 15:14. Просмотров 320. Ответов 4
Метки нет (Все метки)

Тема: Разработка алгоритмов и программ по реализации перегрузки операторов

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

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

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

Организовать перегрузку оператора = и объяснить для чего это сделано - C++
4)Организовать перегрузку оператора = и объяснить для чего это сделано

Не выводит перегрузку оператора сложения - C++
Помогите пожалуйста исправить ошибку: не выводит перегрузку оператора сложения как сделать чтобы /*Класс "Многочлен одной...

Реализовать перегрузку оператора индексации - C++
Здравствуйте! Очень нужна помощь, помогите сделать перегрузку оператора индексации. #include <iostream> #include <string> ...

Как сделать в данной программе перегрузку оператора? - C++
Нужно сделать, чтобы в этой программе была перегрузка оператора (любого). #include <vcl.h> #include <fstream.h> #pragma hdrstop ...

Реализовать перегрузку оператора ввода в классе-наследнике - C++
вопрос, наверное, глупый. Есть класс, содержащий массив (размер задется пользователем) и наследник (4 элемента). Можно ли вызвать...

Обеспечить перегрузку оператора возведения в степень (^) комплексных чисел - C++
Здравствуйте, помогите пожалуйста решить следующее задание Составить описание класса для представления комплексных чисел (в...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
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
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2011, 16:33     Организовать перегрузку оператора (=)
Еще ссылки по теме:

Как в двусвязном списке сделать перегрузку оператора присваивание - C++
Добрый день. Мне нужно перегрузить оператор =, так чтобы один объект класса &quot;Двусвязный список&quot; присваивался другом объекту. class...

Общие символы для двух строк(своего класса) через перегрузку оператора - C++
Создать свой строковый класс, добавить функцию, которая создает строку, содержащую пересечение двух строк, то есть общие символы для двух...

Написать перегрузку оператора "минус" для строк - C++
Такой вопрос, для строк нужно написать оператор &quot;минус&quot;, что это значит? Если оператор &quot;+&quot; конкатенация строк, то что такое оператор...

Не корректно считает перегрузку оператора "-" после "+" - C++
Доброго дня. Помогите советом. Не корректно считает a - b и a * b , после подсчёта a + b. Понимаю что он сохраняет первое решение в...


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

Или воспользуйтесь поиском по форуму:
denisneposeda
46 / 46 / 12
Регистрация: 18.10.2010
Сообщений: 212
15.12.2011, 16:33  [ТС]     Организовать перегрузку оператора (=) #5
благодарю)
Yandex
Объявления
15.12.2011, 16:33     Организовать перегрузку оператора (=)
Ответ Создать тему
Опции темы

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