РЕДАКТИРОВАТЬ: исправлен код для устранения путаницы
Как видно из названия, мне интересно, что происходит с объектом, когда я назначаю ему пустой объект.
Вот конкретный пример только с перегрузками операторов и членами данных классов:
class triangle
{
vector3d p[3];
vector2d *uv = nullptr;
int nChannels = 0;
public:
void operator=(const triangle &obj)
{
delete[] uv;
nChannels= obj.nChannels;
memcpy(p, obj.p, sizeof(vec3d) * 3);
uv = new vec2d[3 * obj.nChannels];
memcpy(uv, obj.uv, 3 * obj.nChannels * sizeof(vec2d));
}
}
int main()
{
triangle p;
d = p; // where d is some initialized or uninitialized instance of triangle
d = p;
}
Короче говоря, что происходит, когда я назначаю объект, у которого есть один элемент, который не был инициализирован, другому объекту и что происходит, когда я вызываю новый треугольник [0], я ожидаю, когда я вызываю новый треугольник [0] для получить nullptr, но я больше не уверен в этом.