Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
GetVariable
163 / 119 / 5
Регистрация: 17.03.2013
Сообщений: 283
#1

Операция постинкремента - C++

10.06.2013, 22:48. Просмотров 342. Ответов 5
Метки нет (Все метки)

Как правильно реализовать операцию постинкремента, или же в данном коде всё верно?

Меня смущает тот факт, что функция сохраняет объект "Person" в static, те не уничтожает его, ибо по другому ссылку не возможно вернуть.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Person& Person::operator ++()
{
    this->set_year(this->get_year() + 1);
 
    return *this;
}
Person& Person::operator ++(int)
{
    static Person Person(this->get_name(), this->get_lastname(), this->get_year());
 
    Person::operator++();
 
    return Person;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2013, 22:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Операция постинкремента (C++):

оператор постинкремента не компилируется - C++
Добавил строку 21 после чего вся прога перестала компилироваться прога #include <string> #include <iostream> // для объекта cout ...

операция <<::>> - C++
имею код char Car::*Get_Marka(){ return marka ; } char Car::*Get_Color() { return color ; } bool Car::Get_Rastamojena() { return...

Условная операция - C++
можно ли зделать такое условие с помощью условной операции (тернарного оператора)? if ((x+n)&lt;0 || sin(z)&lt;0) { ...

операция switch - C++
switch(c)//char c=f.get() { case ' ': ne=true; break; case '\t': ne=true; break; break; case '\n': ne=true; case EOF:

операция присваивания - C++
Столкнулся с глупой проблемой, может кто объяснить, как в таком случае делается присваивание и в чем у меня ошибка? int a=1, b=2, c=3,...

Операция new с размещением - C++
проблема:Во второй элемент структуры данные не передаются, почему? Стоит отметить, что, если использовать просто new без размещения, то все...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
10.06.2013, 22:52 #2
постинкремент должен возвращать копию
GetVariable
163 / 119 / 5
Регистрация: 17.03.2013
Сообщений: 283
10.06.2013, 22:58  [ТС] #3
Тогда у нас будет происходить возвращение адреса временной переменной

или вы имели ввиду

C++
1
2
3
4
5
6
7
8
Person Person::operator ++(int)
{
    Person Person(this->get_name(), this->get_lastname(), this->get_year());
 
    Person::operator++();
 
    return Person;
}
Добавлено через 2 минуты
или

C++
1
2
3
4
5
6
7
8
Person& Person::operator ++(int)
{
    Person* old = new Person(this->get_name(), this->get_lastname(), this->get_year());
 
    Person::operator++();
 
    return *old;
}
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
10.06.2013, 23:01 #4
C++
1
2
3
4
5
6
7
8
Person Person::operator ++(int)
{
    Person person(*this);
 
    this->set_year(get_year() + 1);
 
    return person;
}
BumerangSP
10.06.2013, 23:05
  #5

Не по теме:

GetVariable, можно поинтересоваться? Зачем Вы используете геттеры в методах этого же класса вместо прямого обращения к переменным? В них содержатся сложные описания или что?

GetVariable
163 / 119 / 5
Регистрация: 17.03.2013
Сообщений: 283
10.06.2013, 23:07  [ТС] #6
Цитата Сообщение от BumerangSP Посмотреть сообщение

Не по теме:

GetVariable, можно поинтересоваться? Зачем Вы используете геттеры в методах этого же класса вместо прямого обращения к переменным? В них содержатся сложные описания или что?

Действительно, наверно было избыточно применять геттеры.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2013, 23:07
Привет! Вот еще темы с ответами:

Тернарная операция - C++
Короче говоря вот код: char c = '+', p = '-', l = '*', u = '/'; cin &gt;&gt; x &gt;&gt; y; u ? cout &lt;&lt; x / y : cout &lt;&lt; 0; cin &gt;&gt; x &gt;&gt; y; ...

Битовая операция -> - C++
Что делает операция -&gt; К примеру, есть структура: struct BIT{ unsigned int cod1:3; :1;...

операция повторения - C++
#include &lt;iostream&gt; using namespace std; int main() { int match, win, ni, por; cout&lt;&lt;&quot;Введите количество матчей: &quot;; ...

Операция ИЛИ - C++
Добрый вечер) Я новичок в СИ поэтому если вопрос глупый не пинайте) Возможно ли сделать подобную операцию в СИ: IF (a == 3 ИЛИ 4) {...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.06.2013, 23:07
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru