Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Неявный вызов оператора, Перегрузка префиксного инкремента 
:(
    Опции темы
Sinobithug
Дата 21.6.2014, 04:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 10.6.2009

Репутация: нет
Всего: нет



Код

#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused

class complex
 {
   public:
     complex();   //конструктор
     ~complex () {}    //деструктор
     int GetltsVal() const { return itsVal; }
     void SetltsVal(int x) { itsVal = x; }
     void Increment() { ++itsVal; }

        int GetltsVall() const { return itsVall; }
     void SetltsVall(int x) { itsVall = x; }
     void Incrementl() { ++itsVall; }


    void operator++ () { ++itsVal,++itsVall; } // вот тут и идёт перегрузка

   private:
     int itsVal;
     int itsVall;
 } ;

complex::complex():
 itsVal(0)
  {}

   itsVall(int)
    {}


int main(int argc, char* argv[])
{

complex i,i1;
    cout << "Nachalnoe I= " << i.GetltsVal() << endl;  // начальное i=0
     i.operator ++();

      cout << "Nachalnoe I= " << i.GetltsVall() << endl;  // начальное i=0
     i1.operator ++();


    cout << "I uvelichili na odin I= " << i.GetltsVal() << endl;  // инкремент  ++ увеличивает iна еденицу
     ++i;
      cout << "I uvelichili na odin I= " << i1.GetltsVall() << endl;  // инкремент  ++ увеличивает iна еденицу
     ++i1;


       cout << "echo raz I uvelichili na odin I= " << i.GetltsVal() << endl;   // инкремент  ++ увеличивает  i ещёна еденицу

        cout << "echo raz I uvelichili na odin I= " << i1.GetltsVall() << endl;   // инкремент  ++ увеличивает  i ещёна еденицу
     system("pause");
     return 0;
     
}

Я не смог ответить преподавателю где в коде неявно вызывается перегрузка префиксного инкремента.
Сам вопрос: где в коде неявный вызов оператора ++ ?

Это сообщение отредактировал(а) Sinobithug - 21.6.2014, 04:32
PM MAIL   Вверх
Нэраварин
Дата 21.6.2014, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 9.3.2009

Репутация: нет
Всего: нет



Хм...Чукча не читатель, чукча писатель?

как программа у вас вообще компилируется при таком безобразии:
Код

itsVall(int)
    {}

ЧТо ЭТО вообще такое, чего вы вообще хотели добиться написав это?!

Не боитесь ли, что при таком конструкторе
Код

complex::complex():
itsVal(0)
  {}
 

В переменной itsVall будет случайный мусор?!

Цитата (Sinobithug)

   Сам вопрос: где в коде неявный вызов оператора ++ 
   

*facepalm*
Очедно же, что в :
Код

cout << "I uvelichili na odin I= " << i.GetltsVal() << endl;  // инкремент  ++ увеличивает iна еденицу
     ++i;
      cout << "I uvelichili na odin I= " << i1.GetltsVall() << endl;  // инкремент  ++ увеличивает iна еденицу
     ++i1;


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Sinobithug
Дата 21.6.2014, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 10.6.2009

Репутация: нет
Всего: нет



Спасибо! smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0786 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.