Оператор копирования умолчания, скопирует ли ?
2) низя, надо ручками тогда
![](/images/graemlins/smile.gif)
2)
![](/images/graemlins/frown.gif)
Спасибо!
подойдет. Просто скопируй всю память из-под первого объекта во второй
![](/images/graemlins/smile.gif)
По-идее, можно, тока как мне кажется, в стандарте есть слова типа, как расположены в памяти переменные класса - это имплементэйшн дефайнед, хотя в реальности все компиляторы все-таки по порядку их пихают.
![](/images/graemlins/grin.gif)
![](/images/graemlins/grin.gif)
И юзаю соотв. умолчание
![](/images/graemlins/wink.gif)
Оставить комментарий
vertyal17
1)Есть такая штука например
class gg1
{
public:
int [50] inmember;
int peremint;
long peremlong;
double peremdouble;
}
main
{
class gg1 perem1, perem2;
//
.... тут код где задаем параметры perem1;
//
perem2=perem1;
}
Вопрос, скопирует ли оператор копирования умолчания корректно в perem2, perem1 ?
Интересует, скопируется ли корректно массив inmember, все его значения?
2)
Вот еще такой вопрос, пусть скажем у меня есть некий класс, у которого КУЧА полей. И небольшая часть полей типа char *, (остальные long, int, double) значит надо переопределять конструктор копирования.
Можно ли както вызывать вначале оператор копирования по умолчанию, для всех полей, а потом дополнительно вызывать strdup для полей типа char * ? (Писать оператор присваивания для КУЧИ членов както некрасиво)
Может какойнибудь memcpy подойдет для этой цели?