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

Передача объекта параметром и последующее изменение - 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 \ 3. While (с<=5;){ Рг*=с; ++с; 4. Даны целые положительные числа А и В (А < В). Вывести все целые числа от А до В включительно; при этом каждое число должно выводиться столько раз,...
Картинка C++
Помогите написать код - нужно при нажатии на 1ю кнопку выходила 1я картинка, при нажатии на 2ю кнопку - 2я картинка.
C++ Проверка на четность http://www.cyberforum.ru/cpp-beginners/thread89752.html
Возникло 2 вопроса . Как проверить многозначное целое число на четность разрядов? Как рассмотреть разряды этого числа попарно как последовательности из пар чисел. Заранее благодарен!
C++ Странное условие задания У Дейтлов есть задачка: Компания хочет передавать данные по телефону, но она обеспокоена возможностью телефонного перехвата. Все передаваемые данные являются четырехзначными целыми числами. Компания попросила вас написать программу, которая должна шифровать эти данные так, чтобы они могли передаваться с большей безопасностью. Ваша программа должна читать целые четырехзначные числа и шифровать... подробнее

Показать сообщение отдельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16825 / 5246 / 321
Регистрация: 30.03.2009
Сообщений: 14,128
Записей в блоге: 26
26.01.2010, 21:55     Передача объекта параметром и последующее изменение
C++
1
operand1->NewBinOp (operand1,operand2,OP_DIVIDE)
Насколько я понимаю, сия строка должна создавать новый экземпляр класса. А ты пытаешь существующий экземпляр затащить сам в себя. Если я правильно понимаю то, что ты хочешь, то это должно выглядеть как

C++
1
operand1 = new expr_Node_t (operand1,operand2,OP_DIVIDE); // <-- это конструктор для создания двухоперандного узла
а то, что у тебя сделано в качестве NewBinOp, должно быть конструктором.

Поскольку в твоём случае все expr'ы создаются динамически и вообще не должны копироваться друг в друга (имею в виду не должны копироваться экземпляры класса, указатели конечно же можно), то я бы вообще сделал copy-конструтор, в котором влепил бы вызов Fatal, т.к. таких действий быть не должно

Добавлено через 21 минуту
"это конструктор для создания двухоперандного узла" читать как "инициализации"

В твоём примере ты инициализируешь поля существующего экземпляра. А надо инциализировать поля вновь созданного экземпляра. Т.е. вместо "kind = EK_BINOP" должно быть "operand1->kind = EK_BINOP" и т.д. А вместо "return this" должно быть "return operand1". При таком подходе идеологически это перестаёт быть методом класса, а является обычной функцией

В Си++ есть возможность в одном операторе создать новый объект в динамической памяти и вызвать процедуру для инициализации полей (оператор new). В Си нет возможности, а потому там обычно создаётся функция, внутри которой делается выделение памяти и инициализация полей
 
Текущее время: 22:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru