Re[2]: Можно ли перемещать объекты в памяти ?
От: 1234  
Дата: 28.12.04 16:14
Оценка:
Здравствуйте, Анатолий Широков, Вы писали:

1>>memmove, memcpy and e.t.c.


АШ>Таким способом можно переносить объекты только POD-типов. Приведенный вами класс POD-типом не являетс

Уточню.
Т.е. вы утверждаете что класс
class A
{
public 
    A(){}
    ~A(){}

    void F();
    void F1();
    void F2();

private:
    int m_a;
    int m_b;
    char m_str[100];
}

копировать используя memcpy/memmove нельзя ?

Тогда возникает второй вопрос. (хотя на самом деле для меня именно он был первым).
Возможно я чего-то непонимаю, но спускаясь по дереву вызовов stl::vetor::insert()
я попадаю в конце концов в место где вызывается memmove. Так или иначе вектор сдвигает элементы которые находятся старше предпологаемого индекса вставки. (всем понятно что таких операций нужно старатся избегать в векторе, сейчас вопрос не в этом)

Тогда получается что вектор нельзя инстанировать ничем иным кроме "старых добрых простых"типов.(POD)


Я бы хотел для себя прояснить этот момент так же с позиции почему может быть опасно двигать в памяти объект если у него нет таблицы виртуальных функций ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.