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

перегрузка в с++

17.12.2012, 20:24. Показов 533. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите нужно очень срочно!недавно писал о перегрузке
есть перегрузка постфиксного инкремента

C++
1
2
3
4
Rectang & operator ++(int)
{height++;
width++;
return *this;}
изменяя на

C++
1
2
3
4
void operator ++(int)
{height++;
width++;
}
не будет к примеру компилироваться (r++)++
где r произвольный объект

нужно показать, написав код в несколько строчек через вызов операторных функций, что (r++)++ не скомпилируется (задание дал преподаватель, я что-то не пойму что делать)

написавшему правильный ответ 100 на мобильник обещаю!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2012, 20:24
Ответы с готовыми решениями:

Перегрузка в виде метода VS Перегрузка в виде функции друг
Привет! Собственно сабж: В каких случаях используется перегрузка в виде метода, а когда в виде...

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг...

Перегрузка new
Дайте примеры на перегрузку. #define n ... // Некая целая константа class a { ... }; // Некий...

Перегрузка
И вот это не могу реализовать программно((.Помогите пожалуйста. Время задаётся в формате...

8
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
17.12.2012, 20:30 2
Цитата Сообщение от McToNy Посмотреть сообщение
написавшему правильный ответ 100 на мобильник обещаю!
За деньги в другом разделе, решают. По заданию не понял, что надо показать?
0
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 20
17.12.2012, 21:17  [ТС] 3
что (r++)++ не скомпилируется, честно говоря сам не очень понял вопрос, нужно похоже задать произвольный объект r и показать что конструкция r++++ не скомпилируется, если оператор++ будет возвращать void

Добавлено через 2 минуты
знаю,что это что-то элементарное,код в несколько строчек
0
57 / 18 / 1
Регистрация: 14.05.2012
Сообщений: 134
17.12.2012, 22:09 4
C++
1
2
3
4
void operator ++(int)
{height++;
width++;
}
более того этот код уже не скомпилируется) Вот вы представьте...применяете к объекту типа int оператор ++ и результат работы оператора будет void...какая то чушь...а как это показать? Да просто вставьте такой код в IDE и при компиляции покажите ошибки, которые появятся.
Ну и вот http://habrahabr.ru/post/132014/
0
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 20
17.12.2012, 23:40  [ТС] 5
Smetanka, ну это так препод написал, изменил мою программу.
0
57 / 18 / 1
Регистрация: 14.05.2012
Сообщений: 134
18.12.2012, 06:14 6
McToNy, Да я понимаю, ах эти преподы))) Просто я к чему клоню.
раз это
C++
1
2
3
4
void operator ++(int)
{height++;
width++;
}
уже заранее неверная конструкция, то и программа с такой конструкцией даже не соберется.
0
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
18.12.2012, 08:06 7
Цитата Сообщение от Smetanka Посмотреть сообщение
void operator ++(int)
{height++;
width++;}
уже заранее неверная конструкция,
Синтаксически-то она верная, скомпилируется нормально, в зависимости от того, как использовать.

McToNy, ну вот смотри. Если инкремент перегрузить по правилам.

Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <cstdlib>
using namespace std;
 
class Rectangle
{
public:
    Rectangle(int w, int h)
        :height(h), width(w)
    {};
    
    Rectangle & operator ++(int)
    {
        height++;
        width++;
        return *this;
    }
    
    int get_height() {return height;}
    int get_width() {return width;}
private:
    int height;
    int width;
};
 
 
int main()
{
    Rectangle r(10, 20);
    
    // нормальный вызов
    // сначала выполнится инкремент внутри скобок
    // он вернет ссылку на r
    // потом к ней будет применен второй инкремент
    (r++)++;
  
    // итого значения увеличились на 2
    cout << r.get_height() << " : " << r.get_width() << "\n";
    return 0;
}


А если сделать возвращаемым типом void, то вот такая конструкция будет выполняться нормально: r++. Но к ней второй инкремент уже применить нельзя: (r++)++ - ошибка
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <cstdlib>
using namespace std;
 
class Rectangle
{
public:
    Rectangle(int w, int h)
        :height(h), width(w)
    {};
    void operator ++(int)
    {
        height++;
        width++;
    }
    
    
    int get_height() {return height;}
    int get_width() {return width;}
private:
    int height;
    int width;
};
 
 
int main()
{
    Rectangle r(10, 20);
    
    // ошибочный вызов
    // сначала должен бы выполниться инкремент внутри скобок (r++)
    // но он будет возвращать void 
    // а для типа void не определен инкремент
    (r++)++;
  
    cout << r.get_height() << " : " << r.get_width() << "\n";
    return 0;
}
0
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 20
18.12.2012, 09:23  [ТС] 8
Schizorb спасибо большое,скинь номер,завтра покажу преподу,если верно будет то кину денег
0
Schizorb
18.12.2012, 09:25     перегрузка в с++
  #9

Не по теме:

Не по теме:

Цитата Сообщение от McToNy Посмотреть сообщение
если верно будет то кину денег
та забей))

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2012, 09:25

Перегрузка
ребята помогите сделать тут перегрузку очень нужно :) #include &quot;stdafx.h&quot; #include &lt;iostream&gt;...

Перегрузка
Написать программу на языке C++, реализующию перегруженную функцию z_cnt, получа- ющую в качестве...

Перегрузка
даны две перегрузки: 1. постфиксная для ++ чтобы прибавить 1 к height и к width Rectang &amp;...

Перегрузка +
код: #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; template &lt;class T &gt; class...


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

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