С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Передача объекта параметром и последующее изменение - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Возможные перестановки символов http://www.cyberforum.ru/cpp-beginners/thread89794.html
Всем, привет! Нужно вывести на экран все возможные перестановки n введенных символов. У меня получилось без рекурсии, а вот она то и должна быть использована.. Скиньте код если можна , или ссылку на...
C++ указатели 1. Дан массив с. Отобразите на экране элементы 1 строки. 2. Распечатать введенный массив в порядке возрастания. 3. Определите количество гласных букв во введенной строке. http://www.cyberforum.ru/cpp-beginners/thread89758.html
Суммировать целые числа от 1 до 99 с помощью for C++
1. Определить значение prod и х после выполнения операции ( начальное значение x=5,prod=l) prod=*x++; 2. Суммировать целые числа от 1 до 99 с помощью for ...
Картинка C++
Помогите написать код - нужно при нажатии на 1ю кнопку выходила 1я картинка, при нажатии на 2ю кнопку - 2я картинка.
C++ Проверка на четность http://www.cyberforum.ru/cpp-beginners/thread89752.html
Возникло 2 вопроса . Как проверить многозначное целое число на четность разрядов? Как рассмотреть разряды этого числа попарно как последовательности из пар чисел. Заранее благодарен!
C++ Странное условие задания У Дейтлов есть задачка: Компания хочет передавать данные по телефону, но она обеспокоена возможностью телефонного перехвата. Все передаваемые данные являются четырехзначными целыми числами.... подробнее

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

Передача объекта параметром и последующее изменение - C++

26.01.2010, 16:08. Просмотров 812. Ответов 3
Метки (Все метки)

Неразбериха с классами.
Я создаю экземпляр класса,и далее указатель на него его передаю параметром самому себе.Так можно вообще делать? Заранее извиняюсь за бред,т.к. классы я учу "в процессе".
Выглядит всё это примерно так:
C++
1
2
3
4
5
expr_Node_t *operand1 = syntax_Primary(vars,arrays,labels);
//   ...
operand2 = syntax_Primary(vars,arrays,labels);
operand1->NewBinOp (operand1,operand2,OP_DIVIDE);
//   ...
В функции же происходит следующее:
C++
1
2
3
4
5
6
7
8
9
10
  expr_Node_t *Expression::NewBinOp (expr_Node_t *object,
                                     expr_Node_t *operand2, OpKind oper)
  {
     expr_Node_t *operand1 = new expr_Node_t (*object); // резервируем объект перед изменением
     kind                = EK_BINOP;
     data.binop.kind     = oper;
     data.binop.operand1 = operand1;
     data.binop.operand2 = operand2;
     return this;
  }
Зарезервировать объект,я думаю,необходимо перед изменением,так как все поля data внутри класса - unions (вроде бы анонимные,судя по сообщениям gcc),выглядят так:
union
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        union
        {
           ...
           struct {                 // Unary operation
              OpKind kind;
              expr_Node_t *operand;
           } unop;
           struct {                 // Binary operation
              OpKind kind;
              expr_Node_t *operand1;
              expr_Node_t *operand2;
           } binop;
         ...
        } data;

Имеет ли это смысл вообще?
Будет ли это работать?
Нужно ли писать конструктор-копировщик в этом случае?
Целью этого всего является построение древовидной структуры из экземпляров класса,как вы догадались.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.