Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для Lotles
2 / 2 / 0
Регистрация: 29.12.2009
Сообщений: 167

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

06.07.2010, 02:12. Показов 1012. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Исправьте ошибку, неуказанный тип возвращаемого значения, какая я то глупая ошибка, но я не могу понять
На этой строке
Code
1
point1=point2+5;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <conio.h>
using namespace std;
class Point{
public:
double x,y;
  };
Point operator+(Point& pt1, Point& pt2){
  Point new_pt;
  new_pt.x=pt1.x+pt2.x;
  new_pt.y=pt1.y+pt2.y;
  return new_pt;
      }
  int main(){
        Point point1,point2;
  point2.x=2.0;
  point2.y=4.0;
  point1=point2+5;
  return 0;
  }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.07.2010, 02:12
Ответы с готовыми решениями:

Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this
Добрый день . Помогите понять принцип работы перегрузки операторов. объясните пожалуйста в зависимости от чего зависит агрумент при...

[c++] Перегрузка операторов
Не работает. #include &lt;conio.h&gt; #include &lt;iostream.h&gt; #pragma argsused struct FazzyNumber { double x; double x1,x2; ...

Перегрузка операторов
Привет, у меня есть код, но когда я его делал у меня возникла пара вопросов. #include &lt;iostream&gt; #include &lt;iomanip&gt; ...

6
 Аватар для 6a6kin
232 / 102 / 5
Регистрация: 18.04.2010
Сообщений: 294
06.07.2010, 02:45
1. Неправильная перегрузка(я вообще хз, под какими грибами ты писал этот код)
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
#include <conio.h>
#include <iostream>
using namespace std;
////////////////////////////////////////////////////////////////
class Point
{
public:
double x,y;
 
Point() : x(0.0), y(0.0)
{}
Point( double a, double b ) : x(a), y(b)
{}
Point& operator+(Point pt2)const;
};
//-----------------------------------------------------
Point& Point::operator+(Point pt2)const
{
    return Point( x+pt2.x, y+pt2.y );
}
////////////////////////////////////////////////////////////////
void main()
{
  Point point1, point2( 2.0,  4.0 );
  point1.x = 5.0;
  cout << "x: " << (point2 + point1).x << ", y: " << (point2 + point1).y;
 
  _getch();
}
Камменты нужны?
1
Maniac
Эксперт С++
 Аватар для ISergey
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
06.07.2010, 03:38
Цитата Сообщение от 6a6ka Посмотреть сообщение
Неправильная перегрузка(я вообще хз, под какими грибами ты писал этот код)
Ваш код не лучше...
0
 Аватар для Lotles
2 / 2 / 0
Регистрация: 29.12.2009
Сообщений: 167
06.07.2010, 03:44  [ТС]
Code
1
2
3
4
5
6
Point() : x(0.0), y(0.0)
{}
Point( double a, double b ) : x(a), y(b)
{}
Point& operator+(Point pt2)const;
};
Для меня подобная запись не знакома, а точнее
Code
1
 : x(0.0), y(0.0)
И еще мне нужна перегрузка глобальной функцией, а не методом класса
0
Maniac
Эксперт С++
 Аватар для ISergey
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
06.07.2010, 03:51
6a6ka, Проблема здесь..
C++
1
2
3
4
Point& Point::operator+(Point pt2)const
{
    return Point( x+pt2.x, y+pt2.y );
}
И еще мне нужна перегрузка глобальной функцией, а не методом класса
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
#include <iostream>
 
class Point{
 
    friend std::ostream &operator << (std::ostream &lhs, const Point &rhs){
        return lhs << "X: " << rhs.x << " Y: " << rhs.y;
    }
 
    friend Point operator + (const double &lhs, const Point &rhs);
public:
 
    Point(double _x = 0.0, double _y = 0.0): x(_x), y(_y){
    }
 
    Point operator + (const Point &rhs) const{
        return Point(x + rhs.x, y + rhs.y);
    }
 
    Point operator + (const double &rhs) const{
        return Point(x + rhs, y + rhs);
    }
 
    Point &operator += (const Point &rhs) {
        x += rhs.x;
        y += rhs.y;
 
        return *this;
    }
 
    Point &operator += (const double &rhs) {
        x += rhs;
        y += rhs;
 
        return *this;
    }
 
 
private:
    double x;
    double y;
};
 
Point operator + (const double &lhs, const Point &rhs){
    return Point(lhs + rhs.x, lhs + rhs.y);
}
int main()
{
 
    Point a1(1.0, 1.0), a2(2.0, 3.0), a3;
 
    a3 = a1 + a2;
    std::cout << a3 << std::endl;
 
    a3 = a1 + 2.1;
    std::cout << a3 << std::endl;
 
    a3 += 0.3;
    std::cout << a3 << std::endl;
 
    a3 += a2;
    std::cout << a3 << std::endl;
 
    a3 = 10.1 + a1;
    std::cout << a3 << std::endl;
 
    return 0;
}
1
 Аватар для Lotles
2 / 2 / 0
Регистрация: 29.12.2009
Сообщений: 167
06.07.2010, 04:53  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <conio.h>
using namespace std;
class Point{
public:
double x,y;
  };
Point operator+(Point& pt1, Point& pt2){
  Point new_pt;
  new_pt.x=pt1.x+pt2.x;
  new_pt.y=pt1.y+pt2.y;
  return new_pt;
          }
  int main(){
                Point point1,point2;
  point2.x=2.0;
  point2.y=4.0;
  point1=point2+5;
  return 0;
  }
Меня уже таращит от компа, во я тупанул , конечно уже почти 2 суток почти не отрываясь сижу
Вот правильный код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <conio.h>
using namespace std;
class Point{
public:
double x,y;
  };
Point operator+(Point& pt1, int n){
  Point new_pt;
  new_pt.x=pt1.x+n;
  new_pt.y=pt1.y+n;
  return new_pt;
          }
  int main(){
  Point point1,point2;
  point2.x=2.0;
  point2.y=4.0;
  point1=point2+5;
  return 0;
  }
0
 Аватар для 6a6kin
232 / 102 / 5
Регистрация: 18.04.2010
Сообщений: 294
06.07.2010, 09:30
Когда выключил комп, понял. Думал, что утром тихо все исправлю))
Ну ошибся на одну амперсанду
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.07.2010, 09:30
Помогаю со студенческими работами здесь

Перегрузка операторов
Решите пожалуйсто задачу: Разработайте программу, в которой реализована перегрузка оператора «^». Оператор «^» должен возводить...

Перегрузка операторов
Приветствую! Необходима помощь. Разработать класс Vec4 как вектор из 4-х float. Определить оператор ~ для перестановки элементов вектора...

Перегрузка операторов
Добрый вечер. Не подскажите, в чём дело? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; struct programTime { programTime() { ...

Перегрузка операторов
Всем привет. Мне нужно ввести класс для работы с объектом &quot;рациональная дробь&quot; вида (m / n) (рациональная дробь это дробь у которого...

Перегрузка операторов
#include&lt;locale&gt; #define MAX 20 class Base { public: float **arr; int size; int size2; Base(void);


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru