Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2013, 23:23   #1
Sergius X
Пользователь
 
Регистрация: 21.04.2009
Сообщений: 50
По умолчанию Проблема с вектором

Доброе время суток.
Есть класс
Код:
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 = "";
     }
};
Создаем вектор с этим классом vector<TModelAnswer> ModelAnswerArray;

Ложим в этот вектор три экземпляра этого класса, меняем одно поле и мне надо удалить измененный элемент вектора
Код:
        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
$ergius
Sergius X вне форума Ответить с цитированием
Старый 22.09.2013, 21:11   #2
Sergius X
Пользователь
 
Регистрация: 21.04.2009
Сообщений: 50
По умолчанию

А вот из конца вектора он удаляет без проблем
Код:
ModelAnswerArray.pop_back();
$ergius
Sergius X вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с вектором Stasya2 Паскаль, Turbo Pascal, PascalABC.NET 1 15.11.2012 09:57
Задача с вектором sunny_alice Паскаль, Turbo Pascal, PascalABC.NET 3 23.05.2011 02:02
Создать класс, являющийся трехмерным математическим вектором. fafa2010 Помощь студентам 1 25.06.2010 10:03
Проблема с действиями над вектором korel Общие вопросы C/C++ 1 10.05.2009 22:38
задача с вектором klarissa Помощь студентам 2 22.12.2007 22:24