Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 26.04.2014
Сообщений: 134
1

Перегрузка оператора "+", чтобы выполнял "*"

19.06.2015, 00:43. Показов 600. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребят, привет всем, возник такой вопрос: возможно ли перегрузить оператор "+" так, чтоб выполнялось умножение?

Например вводится последовательность чисел, условие вывода результата- ввод 0, например, сам результат-это умножение введенных чисел.

Вот, собственно, код.

Выручайте, хоть какие-то мысли /идеи, где в коде я допустил оплошность. Перегруз все равно почему-то не работает. Хотя в классе описан верно.


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
#include <iostream>
 
 
using namespace std;
 
class myint
{
public: myint(int a){value=a;}
    ~myint();
    int value;
 
 
 
    void operator +()
    {
        int old=value;
        value*=old;
    };
 
};
 
int main()
{
    
 
    myint  *kll;
 
    int chislo;
    float  res=0;
 
 
/*do{ */ //пытался делать отдельно новый экземпляр класса, потом подумал что не надо.
 
    cout<<"Print chislo: "<<endl;
    cin>>chislo;
    cin.ignore();
 
    kll=new myint(chislo);
 
    do
    {
        res*=kll+;
 
    }
    while (chislo!=0);
 
    cout<<res<<endl;
 
 
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2015, 00:43
Ответы с готовыми решениями:

Перегрузка оператора постфиксального инкремента, чтобы он обрабатывался в выражении корректно
Подскажите, можно ли решить проблему, приводящую к выполнению инструкции вывода строки &quot;WTF?&quot; в...

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

Перегрузка оператора ^
Здравствуйте! Необходимо перегрузить бинарный оператор ^ для транспонирования матрицы. Есть класс...

Перегрузка оператора <
Добрый день. Есть задание:&quot;Создайте множество с элементами типа Point - подумайте, что необходимо...

6
383 / 281 / 31
Регистрация: 04.09.2009
Сообщений: 1,225
19.06.2015, 01:44 2
Цитата Сообщение от Алексей_2012 Посмотреть сообщение
void operator +()
{
int old=value;
value*=old;
};
Цитата Сообщение от Алексей_2012 Посмотреть сообщение
Перегруз все равно почему-то не работает. Хотя в классе описан верно.
И где ж там верно?
Вот примерно как надо, не вдаваясь в подробности того ужаса, что творится у тебя в main():

C++
1
2
3
4
5
myint operator+ (int addendum) const {
    return value + addendum; // возвращаем временный объект myint
    // готовый для дальнейшего присваивания объекту myint или для участия 
    // в последующем сложении
}
А вообще разберись для чего тебе все это нужно, почитай теории — будет намного лучше, чем нынешний "огород".
0
0 / 0 / 1
Регистрация: 26.04.2014
Сообщений: 134
01.07.2015, 01:13  [ТС] 3
Есть ли у кого-нибудь простой пример класса с перегруженными функциями и операторами? Хочу наглядно увидеть-как это работает
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
01.07.2015, 01:34 4
Цитата Сообщение от Алексей_2012 Посмотреть сообщение
Ребят, привет всем, возник такой вопрос: возможно ли перегрузить оператор "+" так, чтоб выполнялось умножение?
Можно убиться об стенку и что бы в голову такие идеи не приходили и никому потом не приходилось мучиться с таким кодом.
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
01.07.2015, 06:18 5
У operator+ 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
class myint
{
private:
    int value;
public: 
    myint(int a=0){value=a;}
    myint operator+(const myint& mm)
    {
         myint t;
         t.value=this->value*mm.value;
         return t;
    };
    friend ostream& operator<<(ostream& out,const myint& mm)
    {
         out<<mm.value;
        return out;
    }
};
int main()
{
     myint  k1(2),k2(3),k3;
     k3=k1+k2; // используется operator= по умолчанию 
     cout<<k3;
}
0
0 / 0 / 1
Регистрация: 26.04.2014
Сообщений: 134
03.07.2015, 15:08  [ТС] 6
Спасибо, а где можно найти сборник упражнений по теме классы, перегрузка, списки...?
0
Модератор
Эксперт CЭксперт С++
5284 / 2371 / 342
Регистрация: 20.02.2013
Сообщений: 5,770
Записей в блоге: 20
03.07.2015, 16:53 7
Алексей_2012, упражнения из 11-й главы книги Стивена Праты посмотри.
0
03.07.2015, 16:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.07.2015, 16:53
Помогаю со студенческими работами здесь

Перегрузка оператора ==
Есть шаблонный класс List (не имеющий перегруженных операторов) и есть шаблонный класс...

Перегрузка оператора
Есть такой вот код: #include &lt;iostream&gt; using namespace std; template &lt;class T&gt; class LIST {...

Перегрузка оператора =
Есть некий класс. И два класса-наследника. Надо перегрузить оператор =, к тому же в дочерних...

Перегрузка оператора <<
Добрый пень! подскажите как написать код для реалилизации следующего требования: SpecialPrint...

Перегрузка оператора +
Ребзя,помогите с задачкой на с++,из за дистанционного тему вообщене понял Задание:Дан двумерный...

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


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

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