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

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

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

Показать сообщение отдельно
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;
    }
}
ничего кроме недоумения не вызывает. У вас точно всё нормально со структурой проекта?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru