Здравствуйте, Аноним, Вы писали:
А>class A
А>{
А> public:
А> A();
А> ~A();
А> BOOL Init();
А> BOOL Start();
А> .
А> .
А> .
А> private:
А> vector<B> vec;
А>};
[ кусь ]
А>A::~A()
А>{
А> vector<B>::iterator iter = vec.begin(); // Этот код не может не падать. ВЕКТОР УДАЛИТ ЭЛЕМЕНТЫ САМ.
А> while(iter != vec.end())
А> {
А> delete iter;
А> iter++;
А> }
А>}
А>BOOL A::Init(параметры)
А>{
А> B *pB;
А> pB = new B(параметры); // Зачем создавать по new? на стеке тоже пректасно можно создавать элементы.
А> vec.push_back(*pB); // Я бы написал vec.push_back( B(параметры) );
А> delete pB;
А>}
[кусь]
А>Операторы присваивания и конструкторы копирования класса B написаны и отлично работают.
Код
B( const B & )
const B operator = ( const B & )
~B();
В студию.