19 / 19 / 2
Регистрация: 26.06.2010
Сообщений: 181
1

Перегрузка оператора =

07.11.2011, 12:02. Показов 536. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
StringOne& StringOne::operator=(char *s)
{
    char b[80];
    strcpy(b, s);
    StringOne a = b;
    return a;//возвращает тоже самое почемуто то что было
}
подскажите пожалуйста как перегрузить этот оператор...
что бы строка присваивалась...

C++
1
StringOne a = "Hello";
тут работает
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2011, 12:02
Ответы с готовыми решениями:

Перегрузка оператора ->
Здравствуйте, мне нужно реализовать перегрузку operator-> .Как реализован оператор ->? Что он...

Перегрузка оператора +=
Есть два класса: Vec4(вектор из 4х float) и Mat4(вектор из 4х Vec4). Проблема в том что при...

Перегрузка оператора <=
Основная задача данного фрагмента отсортировать массив структур по полю name в алфавитном порядке,...

Перегрузка оператора
Имеется код: #include &lt;iostream&gt; class X { public: int a; int b; int operator+(int a)...

4
Заблокирован
07.11.2011, 12:14 2
странный оператор. Желательно бы посмотреть на весь класс, хотя бы ту часть, которая имеет отношение к реализации оператора =
0
3 / 3 / 2
Регистрация: 27.07.2011
Сообщений: 13
07.11.2011, 12:19 3
Тут рекурсия бесконечная=)
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
07.11.2011, 12:24 4
Ты возвращаешь ссылку на объект, которого за пределами функции уже не будет существовать. Этого делать нельзя. Плюс ко всему, operator= должен возвращать *this.

Добавлено через 1 минуту
5ANDR0, если ты имеешь в виду
C++
1
StringOne a = b;
то это вызов конструктора, а не оператора присваивания
1
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
07.11.2011, 13:21 5
что-то типо того
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class StringOne
{
   char* ptr;
   unsigned int size;
public:
   StringOne() : size(), ptr() { }
   const StringOne& operator= (const char* const s)
   {
      if (ptr)
         delete[]ptr;
         
      size = strlen(s);
      ptr = new char[size + 1];
      
      memcpy(ptr, s, size + 1);
      ptr[size] = NULL;
      
      return *this;
   }
};
0
07.11.2011, 13:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2011, 13:21
Помогаю со студенческими работами здесь

Перегрузка оператора +=
Собственно есть класс описывающий правильную дробь с целой частью, числителем и знаменателем, нужно...

Перегрузка оператора
Добрый день! Мне нужно перегрузить в классе двумерного массива оператор ++, чтобы она возвращал...

Перегрузка оператора ==
Пытаюсь перегрузить оператор == . Делаю так: В классе: class cData // класс дата { int ...

Перегрузка оператора +
Помогите с перегрузкой оператора +. Нужно сложить два объекта - двумерные массивы. сArray...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru