Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2013, 00:14   #1
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 592
По умолчанию Непонятная ошибка в расчётах

Удивительно и непонятно, что Код C++


Cat obyekt;
void Cat::Metod (int tselaya=100) //обычный метод
{tselaya=tselaya+GetAge(); cout << tselaya;cout << " целая\n";}


выдает 6109 !!!!!!! Тогда как GetAge() выдает 5. Как и должно , собствено.

Весь код, извините за громоздкость

Код:
#include <string> 
#include <iostream> // для объекта cout
using namespace std;

#include<iomanip>
//Этот файл содержит большую часть манипуляторов C++. Если вы не знаете, что такое манипулятор, 
//не беспокойтесь. Просто подключите это файл вместе с iostream, хуже не станет.
#include<fstream> 
//Подключается при работе с файлами.


   class Cat
{
	 public:
	    Cat(int initialAge=5); 
	    ~Cat();
	    int GetAge() const; // метод доступа const функция доступа к данным-членам класса без права их изменения
	    void SetAge (int age);
	    void Meow();
		void Wydam()  {Bam();};	  //статический метод
		int Bgsamm();
		void Metod(int);
	  private:
	    int itsAge;	// статические переменные класса (Статическое поле)
		int B;
		//	Cat(){itsAge=0; B=8;};
		void Bam( ){cout << "Wydam\n";
		            int BG=itsAge+ B;
		            cout << BG; 
		           } 
	    
};
  

 

 // конструктор класса Cat
  Cat::Cat(int initialAge)
   {
   itsAge = initialAge;
   cout << "Cat constructor\n";
   }

   Cat::~Cat() // деструктор, который не выполняет никаких действий
   {
   cout << "Cat destructor\n";
   }

 

 int Cat::Bgsamm() 
 {
  return (++itsAge); 
 }


 

                                 // определение функции SetAge как открытого
                                 // метода доступа к данным класса
      void Cat::SetAge(int age)	 // присваиваем переменной-члену itsAge
      {
                    itsAge = age;// значение переданного парйметра age
      }




  	 int Cat::GetAge()const
	  {
	   return itsAge;
	  }



                           // Определение метода Meow
	                       // возвращает void
	                       // параметров нет
	                       // используется для вывода на экран текста "Meow"
            void Cat::Meow()
             {
              cout << "Meow.\n";
             }

 

    Cat obyekt;
                  void Cat::Metod (int tselaya=100) //обычный метод
                  {tselaya=tselaya+GetAge(); cout << tselaya;cout << "  целая\n";}	  



 int main()
 {
     { Cat Frisky; 
      Frisky.Meow();
	
      cout << obyekt.GetAge();
	  obyekt.Bgsamm();
      obyekt.Wydam();
	  // obyekt. Bam();
	  obyekt.Metod(); 
	 }  // здесь вызовется деструктор объекта
	system("pause");
    return 0;
 }

Последний раз редактировалось Stilet; 13.09.2013 в 08:10.
Dimka-novitsek вне форума Ответить с цитированием
Старый 12.09.2013, 00:19   #2
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 592
По умолчанию

Код:
int Cat::GetAge()const
	  {
	   return itsAge;
	  }

Код:
// конструктор класса Cat
  Cat::Cat(int initialAge)
   {
   itsAge = initialAge;
   cout << "Cat constructor\n";
   }
public:
Cat(int initialAge=5);

Последний раз редактировалось Dimka-novitsek; 12.09.2013 в 00:22.
Dimka-novitsek вне форума Ответить с цитированием
Старый 12.09.2013, 13:22   #3
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 592
По умолчанию

Не смотрите весь мусорный код. Я просто не понимаю, как сто плюс пять дает 6109 ???

Хоть примерные варианты. Ато, ведь казалась бы, все очевидно!

Последний раз редактировалось Stilet; 12.09.2013 в 20:10.
Dimka-novitsek вне форума Ответить с цитированием
Старый 12.09.2013, 13:40   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Отладкой конечно не проходил?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.09.2013, 14:35   #5
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 592
По умолчанию

Нет, я даже не представляю, как отлаживать. Чесно написать, как раз повод научиться.

Надо ведь всему научиться!

Последний раз редактировалось Stilet; 12.09.2013 в 20:17.
Dimka-novitsek вне форума Ответить с цитированием
Старый 12.09.2013, 19:08   #6
Кащей
Форумчанин
 
Аватар для Кащей
 
Регистрация: 09.07.2013
Сообщений: 249
По умолчанию

Цитата:
Я просто не понимаю, как сто плюс пять дает 6109 ???
При инициализации переменной в ней остался мусор,мусор++ это мусор = мусор + 1; мусор++ + значение = 6109. Это первый вариант. Второй вариант ты нито и нетуда и нетак прибавляеш.
do not use your brain
Кащей вне форума Ответить с цитированием
Старый 12.09.2013, 20:10   #7
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 592
По умолчанию

Спасибо! Ну, да...

Собствено, тогда типерь интересует, что такое отладка. Наверно она мне еще много0-много-много раз, пригодится!
Dimka-novitsek вне форума Ответить с цитированием
Старый 12.09.2013, 20:16   #8
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

Отладка описывается как процесс нахождения и устранения бага для обеспечения корректности программы.
Igor95 вне форума Ответить с цитированием
Старый 12.09.2013, 20:21   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Рекомендую к рассмотрению: http://csharp-and-i.ru/2011/04/otlad...visual-studio/
Хоть и про шарп все равно познавательно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.09.2013, 22:48   #10
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 592
По умолчанию

Спасибо!!! Очень полезно!
Dimka-novitsek вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятная ошибка stalker1995s Общие вопросы Delphi 2 31.03.2013 23:57
Непонятная ошибка?! honor Общие вопросы Delphi 17 28.08.2012 21:28
C#, непонятная ошибка. _-Re@l-_ C# (си шарп) 5 07.11.2010 17:14
Непонятная ошибка. program123 Общие вопросы Delphi 12 12.04.2009 23:07
Непонятная ошибка RealSHELS Общие вопросы Delphi 16 24.10.2008 20:49