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

Один объект не может дополнить другой - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ две переменные с одинаковым именем http://www.cyberforum.ru/cpp-beginners/thread44198.html
Вопрос скорее теоретический: Использую Visual C++ , запускаю debug и в окошечке переменных вижу, например, две переменные с именем i. Возникает такая ситуация, если в коде встречается несколько...
C++ Код для добавлении в реестр подскажите пожалуйста!!!!!напишите такой код чтобы прога добавилась сама по себе в реестр.....в гугле ищу-нету:(:( http://www.cyberforum.ru/cpp-beginners/thread44197.html
C++ Удаления елементов из массива
Народ есть такая задача: зделать массив из 50 случайных чисел из пормежутка А...В. Удалить из массива все його непарные елементы. Напечатать масив и вказать сколько елеметнов было удалено. Можете...
Недозаполненный массив C++
есть массив, допустим c, n=8 по мере выполнения задачи в массив по порядку записываются числа. записались, например, 1,2,3. Судя из теории, остальным пяти пустым ячейкам должны присвоиться...
C++ Двумерный лабиринт http://www.cyberforum.ru/cpp-beginners/thread44161.html
Всем здраствуйте. Пожалуйста посоветуйте что-нибудь). Так же как и автор этой темы начал учить C++. Сам по книгам, это мой первый язык программирования. Занимался по книге Уолтера Савича...
C++ Как рисовать в pictureBox Никак не могу понять, как рисовать в pictureBox. Покажите, пожалуйста, на примере. подробнее

Показать сообщение отдельно
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921

Один объект не может дополнить другой - C++

17.07.2009, 07:45. Просмотров 521. Ответов 5
Метки (Все метки)

Есть два объекта,принадлежащие этому классу.
variable_class.h
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
#include "value_class.h"
 
   class Variable
   {
       private:
 
              Value val;  // это тоже класс,описывающий константное значение
 
              string var_name; // Это имя
 
              bool defined;
 
       public:
              Variable (){};
              Variable (const string);
             ~Variable (){};
 
              string GetVarName () const {return var_name;};
 
              Value GetValue () const {return val;};
 
              bool IsDefined() const {return defined;}
              void SetDefinition(bool b){defined=b;}
 
              Value operator = (const Value& val);
 
   };

Один имеет только имя без значения,другой только значение без имени.
C++
1
2
3
            Variable *var_nameonly = new Variable(syntax_parserIdent()); // Этот получает только имя
 
            Variable* var_valueonly = new Variable(syntax_parserIdentLValue ()); // Этот только значение
Всё проверено,объекты существуют,всё ок.
Далее делаю такое присваивание :
C++
1
2
3
            // Now we have completed variable
            // With name and value
            *var_nameonly = *var_valueonly;
Вот сама перегрузка оператора "=":
C++
1
2
3
4
5
6
   Value Variable::operator = (const Value& next_val)
   {
       val = next_val;
 
       return val;
   }
По какой-то причине имя первого объекта затирается пустой строкой,а значение передаётся нормально.Хотя в перегрузке я передаю только значение val. Почему так происходит? Как можно решить данную проблему? Я понимаю,что всё связано с динамической памятью скорее всего,эта тема немного туманна пока.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru