Я пытаюсь создать список внутри класса в C ++, и я не понимаю, что я делаю неправильно
class Car(){
public:
Car();
~Car();
list <Objects> myList; //a list of some objects from one of my classes
list <Objects>::iterator it;
void addObject(Object obj);
void removeObject(Object obj);
};
Car::Car(){
//what do I need to add to initialize the list
it = myList.begin();
};
void addObject(Object obj){
//myList.insert(it, obj);
myList.push_back(obj);
}
void removeObject(Object obj){
myList.remove(obj);
}
Я не получаю никаких ошибок при сборке, однако отладчик кричиту меня "Выражение: список итератор вставки вне диапазона".Я считаю, что я не инициализирую список внутри моего конструктора, и это причина, почему.Как мне это сделать?* * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * *1006* * * * * * * * * * * * *1006* * * * * * * * * * * * * * * * * * * * * * * * * * * * * Из-за этих "прекрасных" указателей.Чтобы получить это раз и навсегда, я в основном создаю объект типа Car.Затем я создаю несколько объектов типа Object.Затем я добавляю их в свой объект Car, используя приведенный выше код.Почему я не могу их удалить?И самое главное: сколько экземпляров одного и того же объекта я создал, используя этот код:
int main(){
Car myCar = Car();
Object one = Object("first object");
Object two = Object("second object");
Car.addObject(one);
Car.addObject(two);
Car.removeObject(one); //doesn't work???
}
Может кто-нибудь объяснить мне, что я делаю неправильно?Имеет ли что-нибудь отношение к моим проходящим объектам по значению?Как правильно делать вышесказанное?
Спасибо.