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

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

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

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

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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.12.2012, 20:24
Ответы с готовыми решениями:

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

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

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

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

Добавлено через 2 минуты
знаю,что это что-то элементарное,код в несколько строчек
0
57 / 18 / 1
Регистрация: 14.05.2012
Сообщений: 134
17.12.2012, 22:09
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  [ТС]
Smetanka, ну это так препод написал, изменил мою программу.
0
57 / 18 / 1
Регистрация: 14.05.2012
Сообщений: 134
18.12.2012, 06:14
McToNy, Да я понимаю, ах эти преподы))) Просто я к чему клоню.
раз это
C++
1
2
3
4
void operator ++(int)
{height++;
width++;
}
уже заранее неверная конструкция, то и программа с такой конструкцией даже не соберется.
0
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
18.12.2012, 08:06
Цитата Сообщение от 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  [ТС]
Schizorb спасибо большое,скинь номер,завтра покажу преподу,если верно будет то кину денег
0
18.12.2012, 09:25

Не по теме:

Не по теме:

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.12.2012, 09:25
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru