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

Не могу удалить из вектора - C++

Восстановить пароль Регистрация
 
Sergius X
1 / 1 / 0
Регистрация: 04.06.2011
Сообщений: 15
20.09.2013, 08:56     Не могу удалить из вектора #1
Доброе время суток.
Есть класс
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
28
29
class TModelAnswer
{
private:
     char FAnswer;
     float FProbability;
     AnsiString FExplanation;
     char GetAnswer() {return FAnswer;};
     void SetAnswer(char newAnswer) {if(newAnswer != FAnswer) {FAnswer = newAnswer;}};
     float GetProbability() {return FProbability;};
     void SetProbability(float newProbability) {if(newProbability != FProbability) {FProbability = newProbability;}};
     AnsiString GetExplanation() {return FExplanation;};
     void SetExplanation(AnsiString newExplanation) {if(newExplanation != FExplanation) {FExplanation = newExplanation;}};
public:
     __property char Answer = {read=GetAnswer, write=SetAnswer};
     __property float Probability = {read=GetProbability, write=SetProbability};
     __property AnsiString Explanation = {read=GetExplanation, write=SetExplanation};
     TModelAnswer()
     {
             FAnswer = 'h';
             FProbability = 0.9;
             FExplanation = "hello";
     }
     ~TModelAnswer()
     {
             FAnswer = ' ';
             FProbability = 0;
             FExplanation = "";
     }
};
Создаем вектор с этим классом
C++
1
vector<TModelAnswer> ModelAnswerArray;
Ложим в этот вектор три экземпляра этого класса, меняем одно поле и мне надо удалить измененный элемент вектора
C++
1
2
3
4
5
6
7
        TModelAnswer answer[3];
        for(int i=0; i<3; i++)
        {
                ModelAnswerArray.push_back(answer[i]);
        }
        ModelAnswerArray[1].Probability=0.1;
        ModelAnswerArray.erase(ModelAnswerArray.begin()+1);
Но почему не работает? Ошибка в удалении, что именно?
[C++ Error] _algobase.h(145): E2328 Classes with properties cannot be copied by value
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zer0mail
2177 / 1860 / 187
Регистрация: 03.07.2012
Сообщений: 6,621
Записей в блоге: 1
20.09.2013, 09:19     Не могу удалить из вектора #2
"классы со свойствами не могут быть скопированы по значению"
Наверное, нужен конструктор копирования
Sergius X
1 / 1 / 0
Регистрация: 04.06.2011
Сообщений: 15
20.09.2013, 09:22  [ТС]     Не могу удалить из вектора #3
Цитата Сообщение от zer0mail Посмотреть сообщение
Наверное, нужен конструктор копирования
не очень понятно
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
20.09.2013, 10:37     Не могу удалить из вектора #4
Цитата Сообщение от Sergius X Посмотреть сообщение
Classes with properties
это какой буилдер что ли?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,843
Записей в блоге: 2
Завершенные тесты: 1
20.09.2013, 10:50     Не могу удалить из вектора #5
Цитата Сообщение от Tulosba Посмотреть сообщение
это какой буилдер что ли?
Ну судя по коду - да
Sergius X
1 / 1 / 0
Регистрация: 04.06.2011
Сообщений: 15
22.09.2013, 21:07  [ТС]     Не могу удалить из вектора #6
это билдер. А вот с конца вектора он почему то удаляет без проблем
C++
1
ModelAnswerArray.pop_back();
Yandex
Объявления
22.09.2013, 21:07     Не могу удалить из вектора
Ответ Создать тему
Опции темы

Текущее время: 09:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru