У нас есть несколько классов, класс A, у которых есть конструктор, который выглядит следующим образом:
A::A(int num, bool boods, double diablo, std::vector<ClassB* > &c) {
createobj();
setNum(num);
setboods(boods);
setDiablo(diablo);
c= this->c; //Where c, is just a vector of pointer objects of class B
}
void A::createobj() {
E e("e", 59, 0, 100); //Where E is a derived class inherited from class B
B *e = &e;
c.push_back(e);
}
//Then over at main:
main() {
std::vector<ClassB* > c;
A a(100, true, 1.21, c);
std::cout << c.size(); //prints out 1 as expected...
for(auto i : c){
std::cout << i->getName() << std::endl; //instead of printing "e"
//I get this from the console
//�
//Segmentation Fault
}
}
Я работаю над этим более 12 часов, любая помощь очень ценится, и я буду танцевать у васwedding.
c vector - это закрытый вектор указателей, который был объявлен в классе .h и содержит только объекты ClassB *.