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

Суммировать два значения (классы) - C++

Восстановить пароль Регистрация
 
Рики
6 / 6 / 1
Регистрация: 27.02.2013
Сообщений: 23
27.02.2013, 02:14     Суммировать два значения (классы) #1
Объекты класса С1 и С2 анализируются нормально, но почему С3=2? Даже если инициализировать С1 =2, а С2 =5, то С3 = С1+С2 =2.
Подскажите где ошибка.
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
#include <iostream>
using namespace std;
////////////////////////////////////////////////////////////////////////////////
class LInt
{
   private:
      int data;
   public:
      void ravnoNulu()
      {data=0;}
      void celoeZnachenie()
      {cout<<"Ââåäèòå öåëîå ÷èñëî: "; cin>>data;}   
      void showD()
      {cout<< data<<endl;}
      void add_data( LInt, LInt);
};
//------------------------------------------------------------------------------
void LInt::add_data( LInt I1, LInt I2)
      {int data=I1.data+I2.data;}  
////////////////////////////////////////////////////////////////////////////////
int main()
{
LInt C1, C2, C3;
C1.celoeZnachenie();
C2.celoeZnachenie();
C3.add_data(C1,C2);
C1.showD();
C2.showD();
C3.showD();
system("pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2013, 02:14     Суммировать два значения (классы)
Посмотрите здесь:

C++ Конструктор принимающий два целочисленных значения
Создать два файла целых чисел, первый содержит значения дней, а второй — значения месяцев C++
C++ найти два максимальных значения в массиве
C++ Два максимальных значения из 10 целых чисел
C++ Вывести на экран два массива, элементами первого являются элементы, меньшие заданного значения, элементами второго - большие заданного значения
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.02.2013, 02:28     Суммировать два значения (классы) #2
C++
1
2
3
4
void LInt::add_data(LInt I1, LInt I2)
{
    data = I1.data + I2.data;
}
Рики
6 / 6 / 1
Регистрация: 27.02.2013
Сообщений: 23
27.02.2013, 12:02  [ТС]     Суммировать два значения (классы) #3
Да, действительно, все работает. А почему двойка была?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.02.2013, 18:23     Суммировать два значения (классы) #4
Цитата Сообщение от Рики Посмотреть сообщение
Да, действительно, все работает. А почему двойка была?
Почему двойка не знаю. У меня просто мусор выводился(наверное, от компилятора зависит). Поле data, у объекта C3, обрабатывал конструктор по умолчанию. Что он туда прописал неизвестно (у меня - ничего, поэтому и мусор). А в методе add_data(), в вашем коде, происходило не заполнение этого поля, а инициализация локальной переменной int data, созданной в этом методе, которая переставала существовать после выхода из метода.
Рики
6 / 6 / 1
Регистрация: 27.02.2013
Сообщений: 23
27.02.2013, 20:33  [ТС]     Суммировать два значения (классы) #5
Большое спасибо за вашу помощь!
Yandex
Объявления
27.02.2013, 20:33     Суммировать два значения (классы)
Ответ Создать тему
Опции темы

Текущее время: 12:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru