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

При повторном обращении к объекту меняется его содержимое - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Builder C++ Random http://www.cyberforum.ru/cpp-beginners/thread988267.html
Прошу помощи,что в этом коде не верно? Нужно чтобы v1-v7 после первого вывода больше не выводились. //--------------------------------------------------------------------------- #include <iostream.h> #include <conio.h> #include <vcl.h>
C++ контейнер vector Как я понимаю, vector представляет собой что-то вроде динамического массива. Но массивы бывают одномерные,двумерные и так далее. Есть ли возможность реализовать что-то подобное в vector? http://www.cyberforum.ru/cpp-beginners/thread988253.html
C++ Сортировка подсчетом с++
Всем привет. Есть такая проблемка. vs2010 выдает "Прекращена работа программы". Задание - ввод данных в массив, его нужно отсортировать сортировкой подсчетом и применить бинарный поиск к отсортированному массиву. После ввода данных вылетает "Прекращена работа программы". Бинарный поиск работает верно. Помогите, пожалуйста!! Код на с++: #include <iostream> using namespace std; class...
Бинарное дерево по заданому выражению C++
Построить и вывести на экран бинарное дерево следующего выражения: 9 + 8 * (7 + (6 * (5 + 4) - (3 - 2)) +1) Написать функции постфиксного, инфиксного и префиксного обхода дерева и вывести соответствующие выражения на экран. Во время тестирования программы необходимо : проверить правильность ввода и вывода данных (т.е. их соответствие необходимому типа и формата ) . Обеспечить адекватную...
C++ Реализация стека массивом http://www.cyberforum.ru/cpp-beginners/thread988245.html
При реализации стека массивом обеспечить размещение двух стеков в одном массиве. Один стек размещается в начале массива и растет до конца, а второй располагается в конце массива и растет к началу. Заполнить и освободить стеки произвольным образом, вводя значения с клавиатуры. Элементами стека является действительные числа. В виде списка реализовать один стек. Как такое сделать ?
C++ приоритет операций в калькуляторе В целом программа работает нормально, но с минусом косячина конкретная! вот код верхней функции double func() { double res=func1(); char c=cin.get(); switch (c) { case '+': res+=func(); break; case '-': res+=func(); подробнее

Показать сообщение отдельно
Shtirliz72
201 / 161 / 38
Регистрация: 25.10.2013
Сообщений: 527
26.10.2013, 11:56     При повторном обращении к объекту меняется его содержимое
Цитата Сообщение от maria_ Посмотреть сообщение
Первый раз выводится 13, а остальные два - чушь, потому что поле a в v1 оказывается не определено, хотя в Insert я пытаюсь его определить. Как можно сделать, чтобы интерфейс был такой же, но поле a присваивалось?
Девушка, у вас newA - локальная переменная функции Insert, которая уничтожается сразу после завершения работы этой функции(сразу после a = newaPtr). Выделяйте под указатель место с помощью оператора new.
Тоесть:
C++
1
2
3
4
5
6
7
    void Insert( int X )
    {
        A newA; // переменная уничтожается сразу после выполнения строки a = newaPt
        A* newaPtr = &newA; // здесь лучше A* newAPtr = new A;
        a = newaPtr;
    }
};
С другой стороны подобный подход:
C++
1
2
3
4
5
6
7
8
9
10
11
class A
{
public:
    A* a;
    void Insert( int X )
    {
        A newA;
        A* newaPtr = &newA;
        a = newaPtr;
    }
}
ничего кроме недоумения не вызывает. У вас точно всё нормально со структурой проекта?
 
Текущее время: 03:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru